From bc84869bce6c35039e4b3a978c9bd9fd9306d31f Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 11 Mar 2018 13:22:18 +0000 Subject: [PATCH] Squash events, event item additions and event related fixes. Contributed by quangnguyen. --- .../scripts/events/MerrySquashmas/33888-1.htm | 14 + .../scripts/events/MerrySquashmas/33888.htm | 10 + .../events/MerrySquashmas/MerrySquashmas.java | 656 ++++++++++++++ .../scripts/events/MerrySquashmas/config.xml | 24 + .../scripts/events/SquashEvent/31860-1.htm | 14 + .../data/scripts/events/SquashEvent/31860.htm | 10 + .../events/SquashEvent/SquashEvent.java | 655 ++++++++++++++ .../scripts/events/SquashEvent/config.xml | 24 + .../scripts/events/ThePowerOfLove/config.xml | 2 +- .../scripts/events/TotalRecall/config.xml | 2 +- .../events/WatermelonNinja/31860-1.htm | 14 + .../scripts/events/WatermelonNinja/31860.htm | 10 + .../WatermelonNinja/WatermelonNinja.java | 655 ++++++++++++++ .../scripts/events/WatermelonNinja/config.xml | 24 + .../game/data/stats/items/15300-15399.xml | 14 + .../game/data/stats/items/29500-29599.xml | 89 +- .../game/data/stats/items/29600-29699.xml | 140 ++- .../game/data/stats/items/29700-29799.xml | 4 + .../game/data/stats/items/29800-29899.xml | 6 + .../game/data/stats/items/37500-37599.xml | 21 + .../game/data/stats/items/49000-49099.xml | 61 +- .../game/data/stats/items/49100-49199.xml | 10 + .../game/data/stats/items/49500-49599.xml | 14 + .../game/data/stats/items/49600-49699.xml | 30 + .../game/data/stats/items/49700-49799.xml | 24 + .../game/data/stats/items/49800-49899.xml | 4 + .../game/data/stats/items/70200-70299.xml | 39 +- .../game/data/stats/items/70300-70399.xml | 3 + .../game/data/stats/items/70400-70499.xml | 4 + .../game/data/stats/skills/02000-02099.xml | 12 +- .../game/data/stats/skills/06100-06199.xml | 56 +- .../game/data/stats/skills/17100-17199.xml | 64 +- .../game/data/stats/skills/32000-32099.xml | 210 ++++- .../game/data/stats/skills/35000-35099.xml | 12 +- .../game/data/stats/skills/39000-39099.xml | 264 +++++- .../game/data/stats/skills/39100-39199.xml | 851 +++++++++++++++++- .../game/data/stats/skills/39200-39299.xml | 30 +- .../game/data/stats/skills/55000-55099.xml | 41 +- .../game/data/stats/skills/55100-55199.xml | 72 +- .../game/data/stats/skills/55300-55399.xml | 126 ++- .../scripts/events/MerrySquashmas/33888-1.htm | 14 + .../scripts/events/MerrySquashmas/33888.htm | 10 + .../events/MerrySquashmas/MerrySquashmas.java | 656 ++++++++++++++ .../scripts/events/MerrySquashmas/config.xml | 24 + .../scripts/events/SquashEvent/31860-1.htm | 14 + .../data/scripts/events/SquashEvent/31860.htm | 10 + .../events/SquashEvent/SquashEvent.java | 655 ++++++++++++++ .../scripts/events/SquashEvent/config.xml | 24 + .../scripts/events/ThePowerOfLove/config.xml | 2 +- .../scripts/events/TotalRecall/config.xml | 2 +- .../events/WatermelonNinja/31860-1.htm | 14 + .../scripts/events/WatermelonNinja/31860.htm | 10 + .../WatermelonNinja/WatermelonNinja.java | 655 ++++++++++++++ .../scripts/events/WatermelonNinja/config.xml | 24 + .../game/data/stats/items/15300-15399.xml | 14 + .../game/data/stats/items/29500-29599.xml | 89 +- .../game/data/stats/items/29600-29699.xml | 140 ++- .../game/data/stats/items/29700-29799.xml | 4 + .../game/data/stats/items/29800-29899.xml | 6 + .../game/data/stats/items/37500-37599.xml | 21 + .../game/data/stats/items/49000-49099.xml | 61 +- .../game/data/stats/items/49100-49199.xml | 10 + .../game/data/stats/items/49500-49599.xml | 14 + .../game/data/stats/items/49600-49699.xml | 30 + .../game/data/stats/items/49700-49799.xml | 24 + .../game/data/stats/items/49800-49899.xml | 4 + .../game/data/stats/items/70200-70299.xml | 39 +- .../game/data/stats/items/70300-70399.xml | 3 + .../game/data/stats/items/70400-70499.xml | 4 + .../game/data/stats/skills/02000-02099.xml | 12 +- .../game/data/stats/skills/06100-06199.xml | 56 +- .../game/data/stats/skills/17100-17199.xml | 64 +- .../game/data/stats/skills/32000-32099.xml | 210 ++++- .../game/data/stats/skills/35000-35099.xml | 12 +- .../game/data/stats/skills/39000-39099.xml | 264 +++++- .../game/data/stats/skills/39100-39199.xml | 851 +++++++++++++++++- .../game/data/stats/skills/39200-39299.xml | 30 +- .../game/data/stats/skills/55000-55099.xml | 41 +- .../game/data/stats/skills/55100-55199.xml | 72 +- .../game/data/stats/skills/55300-55399.xml | 126 ++- 80 files changed, 8392 insertions(+), 238 deletions(-) create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/config.xml create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/SquashEvent.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/config.xml create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860.htm create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/config.xml create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/config.xml create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/SquashEvent.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/config.xml create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860.htm create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/config.xml diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888.htm new file mode 100644 index 0000000000..283978f3b0 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/33888.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java new file mode 100644 index 0000000000..95282725e1 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java @@ -0,0 +1,656 @@ +/* + * 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 events.MerrySquashmas; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @URL https://eu.4gameforum.com/threads/621704/ + * @author vGodFather + */ +public class MerrySquashmas extends LongTimeEvent +{ + private static final int MANAGER = 33888; + private static final int SNOWY_NECTAR_SKILL = 17110; + + private static final List SQUASH_LIST = Arrays.asList(13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406); + private static final List LARGE_SQUASH_LIST = Arrays.asList(13400, 13401, 13404, 13405); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + + private static final int[][] DROPLIST = + { + // Snowy Rotten Squash + { 13401, Class_Buff_Scroll_1st, 70 }, + { 13401, Angel_Cat_Blessing_Chest, 60 }, + { 13401, Major_Healing_Potion, 70 }, + { 13401, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13401, XP_SP_Scroll_Normal, 50 }, + { 13401, XP_SP_Scroll_Medium, 40 }, + { 13401, Steel, 50 }, + { 13401, Adamantite_Nugget, 50 }, + { 13401, Mithril_Ore, 50 }, + { 13401, Leather, 50 }, + { 13401, Cokes, 50 }, + { 13401, Coarse_Bone_Powder, 50 }, + { 13401, Stone_of_Purity, 50 }, + { 13401, Stormbringer_Blade, 50 }, + { 13401, Stick_of_Faith_Shaft, 50 }, + { 13401, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 13401, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 13401, Sealed_Avadon_Glove_Fragment, 50 }, + { 13401, Sealed_Avadon_Boot_Design, 50 }, + { 13401, Orcish_Glaive_Blade, 50 }, + { 13401, Flamberge_Blade, 50 }, + { 13401, Crystallized_Ice_Bow_Shaft, 50 }, + { 13401, Crystal_Staff_Head, 50 }, + { 13401, Blue_Wolf_Gaiter_Material, 50 }, + { 13401, Battle_Axe_Head, 50 }, + { 13401, Recipe_Battle_Axe, 50 }, + { 13401, Recipe_Blue_Wolf_Gaiters, 50 }, + { 13401, Recipe_Crystal_Staff, 50 }, + { 13401, Recipe_Crystallized_Ice_Bow, 50 }, + { 13401, Recipe_Divine_Gloves, 50 }, + { 13401, Recipe_Divine_Stockings, 50 }, + { 13401, Recipe_Flamberge, 50 }, + { 13401, Recipe_Full_Plate_Helmet, 50 }, + { 13401, Recipe_Full_Plate_Shield, 50 }, + { 13401, Recipe_Orcish_Glaive, 50 }, + { 13401, Recipe_Sealed_Avadon_Boots, 50 }, + { 13401, Recipe_Sealed_Avadon_Gloves, 50 }, + { 13401, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 13401, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 13401, Recipe_Stick_of_Faith, 50 }, + { 13401, Recipe_Stormbringer, 50 }, + + // Snowy Ripe Squash + { 13400, Class_Buff_Scroll_1st, 70 }, + { 13400, Angel_Cat_Blessing_Chest, 60 }, + { 13400, Major_Healing_Potion, 70 }, + { 13400, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13400, XP_SP_Scroll_Normal, 50 }, + { 13400, Coal, 50 }, + { 13400, Animal_Bone, 50 }, + { 13400, Varnish, 50 }, + { 13400, Recipe_Atuba_Hammer, 50 }, + { 13400, Recipe_Gastraphetes, 50 }, + { 13400, Recipe_Maingauche, 50 }, + { 13400, Recipe_Staff_of_Life, 50 }, + { 13400, Recipe_Sword_of_Revolution, 50 }, + { 13400, Atuba_Hammer_Head, 50 }, + { 13400, Gastraphetes_Shaft, 50 }, + { 13400, Maingauche_Edge, 50 }, + { 13400, Staff_of_Life_Shaft, 50 }, + { 13400, Sword_of_Revolution_Blade, 50 }, + + // Snowy Royal Ripe Squash + { 13402, Battle_Axe, 5 }, + { 13402, Crystal_Staff, 5 }, + { 13402, Crystallized_Ice_Bow, 5 }, + { 13402, Flamberge, 5 }, + { 13402, Orcish_Glaive, 5 }, + { 13402, Stick_of_Faith, 5 }, + { 13402, Stormbringer, 5 }, + { 13402, Divine_Gloves, 5 }, + { 13402, Divine_Stockings, 5 }, + { 13402, Divine_Tunic, 5 }, + { 13402, Drake_Leather_Armor, 5 }, + { 13402, Drake_Leather_Boots, 5 }, + { 13402, Full_Plate_Armor, 5 }, + { 13402, Full_Plate_Helmet, 5 }, + { 13402, Full_Plate_Shield, 5 }, + { 13402, Class_Buff_Scroll_2nd , 50 }, + { 13402, Angel_Cat_Blessing_Chest, 50 }, + { 13402, Blessed_Scroll_of_Escape, 50 }, + { 13402, Blessed_Scroll_of_Resurrection, 50 }, + { 13402, Greater_CP_Potion, 50 }, + { 13402, Quick_Healing_Potion, 50 }, + { 13402, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 13402, Special_Pirate_Fruit, 50 }, + { 13402, XP_SP_Scroll_High, 50 }, + { 13402, XP_SP_Scroll_Medium, 50 }, + { 13402, Crystal_C, 50 }, + { 13402, Scroll_Enchant_Armor_C, 50 }, + { 13402, Scroll_Enchant_Weapon_C, 50 }, + { 13402, Scroll_Dance_of_Fire, 70 }, + { 13402, Scroll_Hunter_Song, 70 }, + { 13402, Mithril_Alloy, 50 }, + { 13402, Mold_Hardener, 50 }, + { 13402, Oriharukon, 50 }, + { 13402, Silver_Mold, 50 }, + + // Snowy Large Ripe Squash + { 13404, Atuba_Hammer, 20 }, + { 13404, Gastraphetes, 20 }, + { 13404, Maingauche, 20 }, + { 13404, Staff_of_Life, 20 }, + { 13404, Sword_of_Revolution, 20 }, + { 13404, War_Pick, 20 }, + { 13404, Class_Buff_Scroll_1st, 50 }, + { 13404, Class_Buff_Scroll_2nd , 50 }, + { 13404, Angel_Cat_Blessing_Chest, 50 }, + { 13404, Greater_CP_Potion, 50 }, + { 13404, Rice_Cake_of_Fighting_Spirit, 50 }, + { 13404, Special_Pirate_Fruit, 50 }, + { 13404, XP_SP_Scroll_High, 50 }, + { 13404, XP_SP_Scroll_Medium, 50 }, + { 13404, Crystal_D, 50 }, + { 13404, Scroll_Enchant_Armor_D, 50 }, + { 13404, Scroll_Enchant_Weapon_D, 50 }, + { 13404, Scroll_Acumen, 70 }, + { 13404, Scroll_Berserker_Spirit, 70 }, + { 13404, Scroll_Blessed_Body, 70 }, + { 13404, Scroll_Death_Whisper, 70 }, + { 13404, Scroll_Guidance, 70 }, + { 13404, Scroll_Haste, 70 }, + { 13404, Scroll_Magic_Barrier, 70 }, + { 13404, Scroll_Mana_Regeneration, 70 }, + { 13404, Scroll_Regeneration, 70 }, + { 13404, Enria, 50 }, + { 13404, Mithril_Alloy, 50 }, + { 13404, Mold_Hardener, 50 }, + { 13404, Mold_Lubricant, 50 }, + { 13404, Silver_Mold, 50 }, + { 13404, Varnish_of_Purity, 50 }, + + // Snowy Large Rotten Squash + { 13405, Class_Buff_Scroll_1st, 70 }, + { 13405, Angel_Cat_Blessing_Chest, 60 }, + { 13405, Greater_CP_Potion, 60 }, + { 13405, Quick_Healing_Potion, 60 }, + { 13405, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13405, Adamantite_Nugget, 50 }, + { 13405, Asofe, 50 }, + { 13405, Coarse_Bone_Powder, 50 }, + { 13405, Cokes, 50 }, + { 13405, High_grade_Suede, 50 }, + { 13405, Mithril_Ore, 50 }, + { 13405, Mold_Glue, 50 }, + { 13405, Oriharukon_Ore, 50 }, + { 13405, Steel, 50 }, + { 13405, Steel_Mold, 50 }, + { 13405, Stone_of_Purity, 50 }, + { 13405, Synthetic_Braid, 50 }, + { 13405, Synthetic_Cokes, 50 }, + { 13405, Varnish_of_Purity, 50 }, + { 13405, Avadon_Robe_Fabric, 50 }, + { 13405, Berserker_Blade_Edge, 50 }, + { 13405, Blue_Wolf_Breastplate_Part, 50 }, + { 13405, Dark_Screamer_Edge, 50 }, + { 13405, Divine_Tunic_Fabric, 50 }, + { 13405, Eminence_Bow_Shaft, 50 }, + { 13405, Fisted_Blade_Piece, 50 }, + { 13405, Full_Plate_Armor_Temper, 50 }, + { 13405, Poleaxe_Blade, 50 }, + { 13405, Sage_Staff_Head, 50 }, + { 13405, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13405, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13405, Sealed_Doom_Helmet_Design, 50 }, + { 13405, Sword_of_Nightmare_Blade, 50 }, + { 13405, Recipe_Avadon_Robe, 50 }, + { 13405, Recipe_Berserker_Blade, 50 }, + { 13405, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13405, Recipe_Dark_Screamer, 50 }, + { 13405, Recipe_Divine_Tunic, 50 }, + { 13405, Recipe_Eminence_Bow, 50 }, + { 13405, Recipe_Fisted_Blade, 50 }, + { 13405, Recipe_Full_Plate_Armor, 50 }, + { 13405, Recipe_Homunkulus_Sword, 50 }, + { 13405, Recipe_Leather_Armor_of_Doom, 50 }, + { 13405, Recipe_Poleaxe, 50 }, + { 13405, Recipe_Sage_Staff, 50 }, + { 13405, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13405, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13405, Recipe_Sealed_Doom_Helmet, 50 }, + { 13405, Recipe_Sword_of_Nightmare, 50 }, + + // Snow Royal Large Ripe Squash + { 13406, Berserker_Blade, 5 }, + { 13406, Dark_Screamer, 5 }, + { 13406, Eminence_Bow, 5 }, + { 13406, Fisted_Blade, 5 }, + { 13406, Homunkulus_Sword, 5 }, + { 13406, Poleaxe, 5 }, + { 13406, Sage_Staff, 5 }, + { 13406, Sword_of_Nightmare, 5 }, + { 13406, Avadon_Robe, 5 }, + { 13406, Blue_Wolf_Breastplate, 5 }, + { 13406, Blue_Wolf_Gaiters, 5 }, + { 13406, Leather_Armor_of_Doom, 5 }, + { 13406, Sealed_Avadon_Boots, 10 }, + { 13406, Sealed_Avadon_Circlet, 10 }, + { 13406, Sealed_Avadon_Gloves, 10 }, + { 13406, Sealed_Blue_Wolf_Boots, 10 }, + { 13406, Sealed_Blue_Wolf_Gloves, 10 }, + { 13406, Sealed_Blue_Wolf_Helmet, 10 }, + { 13406, Sealed_Doom_Boots, 10 }, + { 13406, Sealed_Doom_Gloves, 10 }, + { 13406, Sealed_Doom_Helmet, 10 }, + { 13406, Class_Buff_Scroll_2nd , 50 }, + { 13406, Angel_Cat_Blessing_Chest, 50 }, + { 13406, Blessed_Scroll_of_Escape, 50 }, + { 13406, Blessed_Scroll_of_Resurrection, 50 }, + { 13406, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13406, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13406, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13406, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13406, Crystal_B, 50 }, + { 13406, Crystal_C, 50 }, + { 13406, Greater_CP_Potion, 50 }, + { 13406, Major_Healing_Potion, 50 }, + { 13406, Quick_Healing_Potion, 70 }, + { 13406, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13406, Scroll_Dance_of_Fire, 60 }, + { 13406, Scroll_Hunter_Song, 60 }, + { 13406, Scroll_Enchant_Armor_C, 50 }, + { 13406, Scroll_Enchant_Weapon_C, 40 }, + { 13406, Special_Pirate_Fruit, 60 }, + { 13406, XP_SP_Scroll_High, 60 }, + { 13406, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public MerrySquashmas() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == SNOWY_NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 13399: // Snowy Squash Seed + { + randomSpawn(13402, 13401, 13400, npc, true); + break; + } + case 13403: // Large Snowy Squash Seed + { + randomSpawn(13406, 13405, 13404, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new MerrySquashmas(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/config.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/config.xml new file mode 100644 index 0000000000..f23e001971 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/MerrySquashmas/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860.htm new file mode 100644 index 0000000000..1687eeb4e4 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/31860.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/SquashEvent.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/SquashEvent.java new file mode 100644 index 0000000000..80e749fc9e --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/SquashEvent.java @@ -0,0 +1,655 @@ +/* + * 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 events.SquashEvent; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @author vGodFather + */ +public class SquashEvent extends LongTimeEvent +{ + private static final int MANAGER = 31860; + private static final int NECTAR_SKILL = 2005; + + private static final List SQUASH_LIST = Arrays.asList(12774, 12776, 12775, 12777, 12778, 12779, 13016, 13017); + private static final List LARGE_SQUASH_LIST = Arrays.asList(12777, 12778, 12779, 13017); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + + private static final int[][] DROPLIST = + { + // High Quality Squash + { 12775, Class_Buff_Scroll_1st, 70 }, + { 12775, Angel_Cat_Blessing_Chest, 60 }, + { 12775, Major_Healing_Potion, 70 }, + { 12775, Rice_Cake_of_Fighting_Spirit, 60 }, + { 12775, XP_SP_Scroll_Normal, 50 }, + { 12775, XP_SP_Scroll_Medium, 40 }, + { 12775, Steel, 50 }, + { 12775, Adamantite_Nugget, 50 }, + { 12775, Mithril_Ore, 50 }, + { 12775, Leather, 50 }, + { 12775, Cokes, 50 }, + { 12775, Coarse_Bone_Powder, 50 }, + { 12775, Stone_of_Purity, 50 }, + { 12775, Stormbringer_Blade, 50 }, + { 12775, Stick_of_Faith_Shaft, 50 }, + { 12775, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 12775, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 12775, Sealed_Avadon_Glove_Fragment, 50 }, + { 12775, Sealed_Avadon_Boot_Design, 50 }, + { 12775, Orcish_Glaive_Blade, 50 }, + { 12775, Flamberge_Blade, 50 }, + { 12775, Crystallized_Ice_Bow_Shaft, 50 }, + { 12775, Crystal_Staff_Head, 50 }, + { 12775, Blue_Wolf_Gaiter_Material, 50 }, + { 12775, Battle_Axe_Head, 50 }, + { 12775, Recipe_Battle_Axe, 50 }, + { 12775, Recipe_Blue_Wolf_Gaiters, 50 }, + { 12775, Recipe_Crystal_Staff, 50 }, + { 12775, Recipe_Crystallized_Ice_Bow, 50 }, + { 12775, Recipe_Divine_Gloves, 50 }, + { 12775, Recipe_Divine_Stockings, 50 }, + { 12775, Recipe_Flamberge, 50 }, + { 12775, Recipe_Full_Plate_Helmet, 50 }, + { 12775, Recipe_Full_Plate_Shield, 50 }, + { 12775, Recipe_Orcish_Glaive, 50 }, + { 12775, Recipe_Sealed_Avadon_Boots, 50 }, + { 12775, Recipe_Sealed_Avadon_Gloves, 50 }, + { 12775, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 12775, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 12775, Recipe_Stick_of_Faith, 50 }, + { 12775, Recipe_Stormbringer, 50 }, + + // Defective Squash + { 12776, Class_Buff_Scroll_1st, 70 }, + { 12776, Angel_Cat_Blessing_Chest, 60 }, + { 12776, Major_Healing_Potion, 70 }, + { 12776, Rice_Cake_of_Fighting_Spirit, 60 }, + { 12776, XP_SP_Scroll_Normal, 50 }, + { 12776, Coal, 50 }, + { 12776, Animal_Bone, 50 }, + { 12776, Varnish, 50 }, + { 12776, Recipe_Atuba_Hammer, 50 }, + { 12776, Recipe_Gastraphetes, 50 }, + { 12776, Recipe_Maingauche, 50 }, + { 12776, Recipe_Staff_of_Life, 50 }, + { 12776, Recipe_Sword_of_Revolution, 50 }, + { 12776, Atuba_Hammer_Head, 50 }, + { 12776, Gastraphetes_Shaft, 50 }, + { 12776, Maingauche_Edge, 50 }, + { 12776, Staff_of_Life_Shaft, 50 }, + { 12776, Sword_of_Revolution_Blade, 50 }, + + // High Quality Large Squash + { 12778, Battle_Axe, 5 }, + { 12778, Crystal_Staff, 5 }, + { 12778, Crystallized_Ice_Bow, 5 }, + { 12778, Flamberge, 5 }, + { 12778, Orcish_Glaive, 5 }, + { 12778, Stick_of_Faith, 5 }, + { 12778, Stormbringer, 5 }, + { 12778, Divine_Gloves, 5 }, + { 12778, Divine_Stockings, 5 }, + { 12778, Divine_Tunic, 5 }, + { 12778, Drake_Leather_Armor, 5 }, + { 12778, Drake_Leather_Boots, 5 }, + { 12778, Full_Plate_Armor, 5 }, + { 12778, Full_Plate_Helmet, 5 }, + { 12778, Full_Plate_Shield, 5 }, + { 12778, Class_Buff_Scroll_2nd , 50 }, + { 12778, Angel_Cat_Blessing_Chest, 50 }, + { 12778, Blessed_Scroll_of_Escape, 50 }, + { 12778, Blessed_Scroll_of_Resurrection, 50 }, + { 12778, Greater_CP_Potion, 50 }, + { 12778, Quick_Healing_Potion, 50 }, + { 12778, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 12778, Special_Pirate_Fruit, 50 }, + { 12778, XP_SP_Scroll_High, 50 }, + { 12778, XP_SP_Scroll_Medium, 50 }, + { 12778, Crystal_C, 50 }, + { 12778, Scroll_Enchant_Armor_C, 50 }, + { 12778, Scroll_Enchant_Weapon_C, 50 }, + { 12778, Scroll_Dance_of_Fire, 70 }, + { 12778, Scroll_Hunter_Song, 70 }, + { 12778, Mithril_Alloy, 50 }, + { 12778, Mold_Hardener, 50 }, + { 12778, Oriharukon, 50 }, + { 12778, Silver_Mold, 50 }, + + // Defective Large Squash + { 12779, Atuba_Hammer, 20 }, + { 12779, Gastraphetes, 20 }, + { 12779, Maingauche, 20 }, + { 12779, Staff_of_Life, 20 }, + { 12779, Sword_of_Revolution, 20 }, + { 12779, War_Pick, 20 }, + { 12779, Class_Buff_Scroll_1st, 50 }, + { 12779, Class_Buff_Scroll_2nd , 50 }, + { 12779, Angel_Cat_Blessing_Chest, 50 }, + { 12779, Greater_CP_Potion, 50 }, + { 12779, Rice_Cake_of_Fighting_Spirit, 50 }, + { 12779, Special_Pirate_Fruit, 50 }, + { 12779, XP_SP_Scroll_High, 50 }, + { 12779, XP_SP_Scroll_Medium, 50 }, + { 12779, Crystal_D, 50 }, + { 12779, Scroll_Enchant_Armor_D, 50 }, + { 12779, Scroll_Enchant_Weapon_D, 50 }, + { 12779, Scroll_Acumen, 70 }, + { 12779, Scroll_Berserker_Spirit, 70 }, + { 12779, Scroll_Blessed_Body, 70 }, + { 12779, Scroll_Death_Whisper, 70 }, + { 12779, Scroll_Guidance, 70 }, + { 12779, Scroll_Haste, 70 }, + { 12779, Scroll_Magic_Barrier, 70 }, + { 12779, Scroll_Mana_Regeneration, 70 }, + { 12779, Scroll_Regeneration, 70 }, + { 12779, Enria, 50 }, + { 12779, Mithril_Alloy, 50 }, + { 12779, Mold_Hardener, 50 }, + { 12779, Mold_Lubricant, 50 }, + { 12779, Silver_Mold, 50 }, + { 12779, Varnish_of_Purity, 50 }, + + // Royal Ripe Squash + { 13016, Class_Buff_Scroll_1st, 70 }, + { 13016, Angel_Cat_Blessing_Chest, 60 }, + { 13016, Greater_CP_Potion, 60 }, + { 13016, Quick_Healing_Potion, 60 }, + { 13016, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13016, Adamantite_Nugget, 50 }, + { 13016, Asofe, 50 }, + { 13016, Coarse_Bone_Powder, 50 }, + { 13016, Cokes, 50 }, + { 13016, High_grade_Suede, 50 }, + { 13016, Mithril_Ore, 50 }, + { 13016, Mold_Glue, 50 }, + { 13016, Oriharukon_Ore, 50 }, + { 13016, Steel, 50 }, + { 13016, Steel_Mold, 50 }, + { 13016, Stone_of_Purity, 50 }, + { 13016, Synthetic_Braid, 50 }, + { 13016, Synthetic_Cokes, 50 }, + { 13016, Varnish_of_Purity, 50 }, + { 13016, Avadon_Robe_Fabric, 50 }, + { 13016, Berserker_Blade_Edge, 50 }, + { 13016, Blue_Wolf_Breastplate_Part, 50 }, + { 13016, Dark_Screamer_Edge, 50 }, + { 13016, Divine_Tunic_Fabric, 50 }, + { 13016, Eminence_Bow_Shaft, 50 }, + { 13016, Fisted_Blade_Piece, 50 }, + { 13016, Full_Plate_Armor_Temper, 50 }, + { 13016, Poleaxe_Blade, 50 }, + { 13016, Sage_Staff_Head, 50 }, + { 13016, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13016, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13016, Sealed_Doom_Helmet_Design, 50 }, + { 13016, Sword_of_Nightmare_Blade, 50 }, + { 13016, Recipe_Avadon_Robe, 50 }, + { 13016, Recipe_Berserker_Blade, 50 }, + { 13016, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13016, Recipe_Dark_Screamer, 50 }, + { 13016, Recipe_Divine_Tunic, 50 }, + { 13016, Recipe_Eminence_Bow, 50 }, + { 13016, Recipe_Fisted_Blade, 50 }, + { 13016, Recipe_Full_Plate_Armor, 50 }, + { 13016, Recipe_Homunkulus_Sword, 50 }, + { 13016, Recipe_Leather_Armor_of_Doom, 50 }, + { 13016, Recipe_Poleaxe, 50 }, + { 13016, Recipe_Sage_Staff, 50 }, + { 13016, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13016, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13016, Recipe_Sealed_Doom_Helmet, 50 }, + { 13016, Recipe_Sword_of_Nightmare, 50 }, + + // Royal Large Ripe Squash + { 13017, Berserker_Blade, 5 }, + { 13017, Dark_Screamer, 5 }, + { 13017, Eminence_Bow, 5 }, + { 13017, Fisted_Blade, 5 }, + { 13017, Homunkulus_Sword, 5 }, + { 13017, Poleaxe, 5 }, + { 13017, Sage_Staff, 5 }, + { 13017, Sword_of_Nightmare, 5 }, + { 13017, Avadon_Robe, 5 }, + { 13017, Blue_Wolf_Breastplate, 5 }, + { 13017, Blue_Wolf_Gaiters, 5 }, + { 13017, Leather_Armor_of_Doom, 5 }, + { 13017, Sealed_Avadon_Boots, 10 }, + { 13017, Sealed_Avadon_Circlet, 10 }, + { 13017, Sealed_Avadon_Gloves, 10 }, + { 13017, Sealed_Blue_Wolf_Boots, 10 }, + { 13017, Sealed_Blue_Wolf_Gloves, 10 }, + { 13017, Sealed_Blue_Wolf_Helmet, 10 }, + { 13017, Sealed_Doom_Boots, 10 }, + { 13017, Sealed_Doom_Gloves, 10 }, + { 13017, Sealed_Doom_Helmet, 10 }, + { 13017, Class_Buff_Scroll_2nd , 50 }, + { 13017, Angel_Cat_Blessing_Chest, 50 }, + { 13017, Blessed_Scroll_of_Escape, 50 }, + { 13017, Blessed_Scroll_of_Resurrection, 50 }, + { 13017, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13017, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13017, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13017, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13017, Crystal_B, 50 }, + { 13017, Crystal_C, 50 }, + { 13017, Greater_CP_Potion, 50 }, + { 13017, Major_Healing_Potion, 50 }, + { 13017, Quick_Healing_Potion, 70 }, + { 13017, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13017, Scroll_Dance_of_Fire, 60 }, + { 13017, Scroll_Hunter_Song, 60 }, + { 13017, Scroll_Enchant_Armor_C, 50 }, + { 13017, Scroll_Enchant_Weapon_C, 40 }, + { 13017, Special_Pirate_Fruit, 60 }, + { 13017, XP_SP_Scroll_High, 60 }, + { 13017, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public SquashEvent() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 12774: // Young Squash + { + randomSpawn(13016, 12775, 12776, npc, true); + break; + } + case 12777: // Large Young Squash + { + randomSpawn(13017, 12778, 12779, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new SquashEvent(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/config.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/config.xml new file mode 100644 index 0000000000..fc34a1a75d --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/SquashEvent/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/ThePowerOfLove/config.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/ThePowerOfLove/config.xml index e3e3f9288a..38a1bd48c4 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/ThePowerOfLove/config.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/ThePowerOfLove/config.xml @@ -1,5 +1,5 @@ - + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/TotalRecall/config.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/TotalRecall/config.xml index a0e458844c..fb3b0613d7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/TotalRecall/config.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/TotalRecall/config.xml @@ -1,5 +1,5 @@ - + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860.htm new file mode 100644 index 0000000000..8e18d11b54 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/31860.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java new file mode 100644 index 0000000000..f9db872a98 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java @@ -0,0 +1,655 @@ +/* + * 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 events.WatermelonNinja; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @URL https://eu.4gameforum.com/threads/653089/ + * @author vGodFather + */ +public class WatermelonNinja extends LongTimeEvent +{ + private static final int MANAGER = 31860; + private static final int NECTAR_SKILL = 2005; + + private static final List SQUASH_LIST = Arrays.asList(13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278); + private static final List LARGE_SQUASH_LIST = Arrays.asList(13274, 13278); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + private static final int[][] DROPLIST = + { + // Rain Watermelon + { 13273, Class_Buff_Scroll_1st, 70 }, + { 13273, Angel_Cat_Blessing_Chest, 60 }, + { 13273, Major_Healing_Potion, 70 }, + { 13273, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13273, XP_SP_Scroll_Normal, 50 }, + { 13273, XP_SP_Scroll_Medium, 40 }, + { 13273, Steel, 50 }, + { 13273, Adamantite_Nugget, 50 }, + { 13273, Mithril_Ore, 50 }, + { 13273, Leather, 50 }, + { 13273, Cokes, 50 }, + { 13273, Coarse_Bone_Powder, 50 }, + { 13273, Stone_of_Purity, 50 }, + { 13273, Stormbringer_Blade, 50 }, + { 13273, Stick_of_Faith_Shaft, 50 }, + { 13273, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 13273, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 13273, Sealed_Avadon_Glove_Fragment, 50 }, + { 13273, Sealed_Avadon_Boot_Design, 50 }, + { 13273, Orcish_Glaive_Blade, 50 }, + { 13273, Flamberge_Blade, 50 }, + { 13273, Crystallized_Ice_Bow_Shaft, 50 }, + { 13273, Crystal_Staff_Head, 50 }, + { 13273, Blue_Wolf_Gaiter_Material, 50 }, + { 13273, Battle_Axe_Head, 50 }, + { 13273, Recipe_Battle_Axe, 50 }, + { 13273, Recipe_Blue_Wolf_Gaiters, 50 }, + { 13273, Recipe_Crystal_Staff, 50 }, + { 13273, Recipe_Crystallized_Ice_Bow, 50 }, + { 13273, Recipe_Divine_Gloves, 50 }, + { 13273, Recipe_Divine_Stockings, 50 }, + { 13273, Recipe_Flamberge, 50 }, + { 13273, Recipe_Full_Plate_Helmet, 50 }, + { 13273, Recipe_Full_Plate_Shield, 50 }, + { 13273, Recipe_Orcish_Glaive, 50 }, + { 13273, Recipe_Sealed_Avadon_Boots, 50 }, + { 13273, Recipe_Sealed_Avadon_Gloves, 50 }, + { 13273, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 13273, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 13273, Recipe_Stick_of_Faith, 50 }, + { 13273, Recipe_Stormbringer, 50 }, + + // Defective Watermelon + { 13272, Class_Buff_Scroll_1st, 70 }, + { 13272, Angel_Cat_Blessing_Chest, 60 }, + { 13272, Major_Healing_Potion, 70 }, + { 13272, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13272, XP_SP_Scroll_Normal, 50 }, + { 13272, Coal, 50 }, + { 13272, Animal_Bone, 50 }, + { 13272, Varnish, 50 }, + { 13272, Recipe_Atuba_Hammer, 50 }, + { 13272, Recipe_Gastraphetes, 50 }, + { 13272, Recipe_Maingauche, 50 }, + { 13272, Recipe_Staff_of_Life, 50 }, + { 13272, Recipe_Sword_of_Revolution, 50 }, + { 13272, Atuba_Hammer_Head, 50 }, + { 13272, Gastraphetes_Shaft, 50 }, + { 13272, Maingauche_Edge, 50 }, + { 13272, Staff_of_Life_Shaft, 50 }, + { 13272, Sword_of_Revolution_Blade, 50 }, + + // Large rain Watermelon + { 13274, Battle_Axe, 5 }, + { 13274, Crystal_Staff, 5 }, + { 13274, Crystallized_Ice_Bow, 5 }, + { 13274, Flamberge, 5 }, + { 13274, Orcish_Glaive, 5 }, + { 13274, Stick_of_Faith, 5 }, + { 13274, Stormbringer, 5 }, + { 13274, Divine_Gloves, 5 }, + { 13274, Divine_Stockings, 5 }, + { 13274, Divine_Tunic, 5 }, + { 13274, Drake_Leather_Armor, 5 }, + { 13274, Drake_Leather_Boots, 5 }, + { 13274, Full_Plate_Armor, 5 }, + { 13274, Full_Plate_Helmet, 5 }, + { 13274, Full_Plate_Shield, 5 }, + { 13274, Class_Buff_Scroll_2nd , 50 }, + { 13274, Angel_Cat_Blessing_Chest, 50 }, + { 13274, Blessed_Scroll_of_Escape, 50 }, + { 13274, Blessed_Scroll_of_Resurrection, 50 }, + { 13274, Greater_CP_Potion, 50 }, + { 13274, Quick_Healing_Potion, 50 }, + { 13274, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 13274, Special_Pirate_Fruit, 50 }, + { 13274, XP_SP_Scroll_High, 50 }, + { 13274, XP_SP_Scroll_Medium, 50 }, + { 13274, Crystal_C, 50 }, + { 13274, Scroll_Enchant_Armor_C, 50 }, + { 13274, Scroll_Enchant_Weapon_C, 50 }, + { 13274, Scroll_Dance_of_Fire, 70 }, + { 13274, Scroll_Hunter_Song, 70 }, + { 13274, Mithril_Alloy, 50 }, + { 13274, Mold_Hardener, 50 }, + { 13274, Oriharukon, 50 }, + { 13274, Silver_Mold, 50 }, + + // Defective Honey Watermelon + { 13276, Atuba_Hammer, 20 }, + { 13276, Gastraphetes, 20 }, + { 13276, Maingauche, 20 }, + { 13276, Staff_of_Life, 20 }, + { 13276, Sword_of_Revolution, 20 }, + { 13276, War_Pick, 20 }, + { 13276, Class_Buff_Scroll_1st, 50 }, + { 13276, Class_Buff_Scroll_2nd , 50 }, + { 13276, Angel_Cat_Blessing_Chest, 50 }, + { 13276, Greater_CP_Potion, 50 }, + { 13276, Rice_Cake_of_Fighting_Spirit, 50 }, + { 13276, Special_Pirate_Fruit, 50 }, + { 13276, XP_SP_Scroll_High, 50 }, + { 13276, XP_SP_Scroll_Medium, 50 }, + { 13276, Crystal_D, 50 }, + { 13276, Scroll_Enchant_Armor_D, 50 }, + { 13276, Scroll_Enchant_Weapon_D, 50 }, + { 13276, Scroll_Acumen, 70 }, + { 13276, Scroll_Berserker_Spirit, 70 }, + { 13276, Scroll_Blessed_Body, 70 }, + { 13276, Scroll_Death_Whisper, 70 }, + { 13276, Scroll_Guidance, 70 }, + { 13276, Scroll_Haste, 70 }, + { 13276, Scroll_Magic_Barrier, 70 }, + { 13276, Scroll_Mana_Regeneration, 70 }, + { 13276, Scroll_Regeneration, 70 }, + { 13276, Enria, 50 }, + { 13276, Mithril_Alloy, 50 }, + { 13276, Mold_Hardener, 50 }, + { 13276, Mold_Lubricant, 50 }, + { 13276, Silver_Mold, 50 }, + { 13276, Varnish_of_Purity, 50 }, + + // Rain Honey Watermelon + { 13277, Class_Buff_Scroll_1st, 70 }, + { 13277, Angel_Cat_Blessing_Chest, 60 }, + { 13277, Greater_CP_Potion, 60 }, + { 13277, Quick_Healing_Potion, 60 }, + { 13277, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13277, Adamantite_Nugget, 50 }, + { 13277, Asofe, 50 }, + { 13277, Coarse_Bone_Powder, 50 }, + { 13277, Cokes, 50 }, + { 13277, High_grade_Suede, 50 }, + { 13277, Mithril_Ore, 50 }, + { 13277, Mold_Glue, 50 }, + { 13277, Oriharukon_Ore, 50 }, + { 13277, Steel, 50 }, + { 13277, Steel_Mold, 50 }, + { 13277, Stone_of_Purity, 50 }, + { 13277, Synthetic_Braid, 50 }, + { 13277, Synthetic_Cokes, 50 }, + { 13277, Varnish_of_Purity, 50 }, + { 13277, Avadon_Robe_Fabric, 50 }, + { 13277, Berserker_Blade_Edge, 50 }, + { 13277, Blue_Wolf_Breastplate_Part, 50 }, + { 13277, Dark_Screamer_Edge, 50 }, + { 13277, Divine_Tunic_Fabric, 50 }, + { 13277, Eminence_Bow_Shaft, 50 }, + { 13277, Fisted_Blade_Piece, 50 }, + { 13277, Full_Plate_Armor_Temper, 50 }, + { 13277, Poleaxe_Blade, 50 }, + { 13277, Sage_Staff_Head, 50 }, + { 13277, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13277, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13277, Sealed_Doom_Helmet_Design, 50 }, + { 13277, Sword_of_Nightmare_Blade, 50 }, + { 13277, Recipe_Avadon_Robe, 50 }, + { 13277, Recipe_Berserker_Blade, 50 }, + { 13277, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13277, Recipe_Dark_Screamer, 50 }, + { 13277, Recipe_Divine_Tunic, 50 }, + { 13277, Recipe_Eminence_Bow, 50 }, + { 13277, Recipe_Fisted_Blade, 50 }, + { 13277, Recipe_Full_Plate_Armor, 50 }, + { 13277, Recipe_Homunkulus_Sword, 50 }, + { 13277, Recipe_Leather_Armor_of_Doom, 50 }, + { 13277, Recipe_Poleaxe, 50 }, + { 13277, Recipe_Sage_Staff, 50 }, + { 13277, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13277, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13277, Recipe_Sealed_Doom_Helmet, 50 }, + { 13277, Recipe_Sword_of_Nightmare, 50 }, + + // Large Rain Honey Watermelon + { 13278, Berserker_Blade, 5 }, + { 13278, Dark_Screamer, 5 }, + { 13278, Eminence_Bow, 5 }, + { 13278, Fisted_Blade, 5 }, + { 13278, Homunkulus_Sword, 5 }, + { 13278, Poleaxe, 5 }, + { 13278, Sage_Staff, 5 }, + { 13278, Sword_of_Nightmare, 5 }, + { 13278, Avadon_Robe, 5 }, + { 13278, Blue_Wolf_Breastplate, 5 }, + { 13278, Blue_Wolf_Gaiters, 5 }, + { 13278, Leather_Armor_of_Doom, 5 }, + { 13278, Sealed_Avadon_Boots, 10 }, + { 13278, Sealed_Avadon_Circlet, 10 }, + { 13278, Sealed_Avadon_Gloves, 10 }, + { 13278, Sealed_Blue_Wolf_Boots, 10 }, + { 13278, Sealed_Blue_Wolf_Gloves, 10 }, + { 13278, Sealed_Blue_Wolf_Helmet, 10 }, + { 13278, Sealed_Doom_Boots, 10 }, + { 13278, Sealed_Doom_Gloves, 10 }, + { 13278, Sealed_Doom_Helmet, 10 }, + { 13278, Class_Buff_Scroll_2nd , 50 }, + { 13278, Angel_Cat_Blessing_Chest, 50 }, + { 13278, Blessed_Scroll_of_Escape, 50 }, + { 13278, Blessed_Scroll_of_Resurrection, 50 }, + { 13278, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13278, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13278, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13278, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13278, Crystal_B, 50 }, + { 13278, Crystal_C, 50 }, + { 13278, Greater_CP_Potion, 50 }, + { 13278, Major_Healing_Potion, 50 }, + { 13278, Quick_Healing_Potion, 70 }, + { 13278, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13278, Scroll_Dance_of_Fire, 60 }, + { 13278, Scroll_Hunter_Song, 60 }, + { 13278, Scroll_Enchant_Armor_C, 50 }, + { 13278, Scroll_Enchant_Weapon_C, 40 }, + { 13278, Special_Pirate_Fruit, 60 }, + { 13278, XP_SP_Scroll_High, 60 }, + { 13278, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public WatermelonNinja() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 13271: // Watermelon Seed + { + randomSpawn(13274, 13273, 13272, npc, true); + break; + } + case 13275: // Honey Watermelon Seed + { + randomSpawn(13278, 13277, 13276, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new WatermelonNinja(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/config.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/config.xml new file mode 100644 index 0000000000..7bea833cea --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/events/WatermelonNinja/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/15300-15399.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/15300-15399.xml index 1b17f3a595..7a46d66ccd 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/15300-15399.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/15300-15399.xml @@ -191,6 +191,13 @@ + + + + + + + @@ -198,6 +205,13 @@ + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29500-29599.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29500-29599.xml index 8bc6fc0a30..c32dd29b94 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29500-29599.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29500-29599.xml @@ -139,6 +139,17 @@ + + + + + + + + + + + @@ -151,6 +162,14 @@ + + + + + + + + @@ -163,6 +182,16 @@ + + + + + + + + + + @@ -175,6 +204,16 @@ + + + + + + + + + + @@ -187,6 +226,16 @@ + + + + + + + + + + @@ -199,6 +248,16 @@ + + + + + + + + + + @@ -211,6 +270,13 @@ + + + + + + + @@ -363,6 +429,15 @@ + + + + + + + + + @@ -373,6 +448,15 @@ + + + + + + + + + @@ -1003,7 +1087,7 @@ - + @@ -1018,6 +1102,9 @@ + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29600-29699.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29600-29699.xml index bebaa235ae..d04ef2a9cb 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29600-29699.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29600-29699.xml @@ -25,6 +25,17 @@ + + + + + + + + + + + @@ -37,6 +48,14 @@ + + + + + + + + @@ -49,6 +68,16 @@ + + + + + + + + + + @@ -61,6 +90,16 @@ + + + + + + + + + + @@ -73,6 +112,16 @@ + + + + + + + + + + @@ -85,6 +134,16 @@ + + + + + + + + + + @@ -97,6 +156,13 @@ + + + + + + + @@ -753,6 +819,17 @@ + + + + + + + + + + + @@ -765,6 +842,14 @@ + + + + + + + + @@ -777,6 +862,16 @@ + + + + + + + + + + @@ -789,6 +884,16 @@ + + + + + + + + + + @@ -801,6 +906,16 @@ + + + + + + + + + + @@ -813,6 +928,16 @@ + + + + + + + + + + @@ -825,6 +950,13 @@ + + + + + + + @@ -934,6 +1066,7 @@ + @@ -955,6 +1088,7 @@ + @@ -976,6 +1110,7 @@ + @@ -1033,7 +1168,10 @@ - + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29700-29799.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29700-29799.xml index 6d162c0d11..5f46b4cea1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29700-29799.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29700-29799.xml @@ -19,6 +19,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29800-29899.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29800-29899.xml index 6348297ba1..ba04ee504d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29800-29899.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/29800-29899.xml @@ -265,6 +265,12 @@ + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/37500-37599.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/37500-37599.xml index 508e5ed474..e46ab9d998 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/37500-37599.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/37500-37599.xml @@ -44,6 +44,13 @@ + + + + + + + @@ -120,6 +127,13 @@ + + + + + + + @@ -127,5 +141,12 @@ + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49000-49099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49000-49099.xml index 95341a68c6..a0d5a026d7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49000-49099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49000-49099.xml @@ -4,7 +4,7 @@ - + @@ -13,6 +13,14 @@ + + + + + + + + @@ -25,12 +33,16 @@ + + + + - + @@ -39,6 +51,14 @@ + + + + + + + + @@ -51,6 +71,10 @@ + + + + @@ -255,8 +279,8 @@ - - + + @@ -276,8 +300,8 @@ - - + + @@ -297,8 +321,8 @@ - - + + @@ -318,8 +342,8 @@ - - + + @@ -339,8 +363,8 @@ - - + + @@ -384,6 +408,9 @@ + + + @@ -1074,6 +1101,11 @@ + + + + + @@ -1081,6 +1113,11 @@ + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49100-49199.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49100-49199.xml index c265363b97..1ba5d7d5d5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49100-49199.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49100-49199.xml @@ -100,6 +100,11 @@ + + + + + @@ -107,6 +112,11 @@ + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49500-49599.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49500-49599.xml index 89bf2e1bc2..25d7b281ac 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49500-49599.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49500-49599.xml @@ -269,6 +269,12 @@ + + + + + + @@ -333,6 +339,10 @@ + + + + @@ -492,6 +502,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49600-49699.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49600-49699.xml index 96a49d4bdb..aae6b74ae9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49600-49699.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49600-49699.xml @@ -24,6 +24,10 @@ + + + + @@ -31,6 +35,10 @@ + + + + @@ -38,6 +46,10 @@ + + + + @@ -45,6 +57,10 @@ + + + + @@ -52,6 +68,10 @@ + + + + @@ -59,6 +79,10 @@ + + + + @@ -383,6 +407,12 @@ + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49700-49799.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49700-49799.xml index 783b08dcfa..026b8012c7 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49700-49799.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49700-49799.xml @@ -886,6 +886,10 @@ + + + + @@ -990,6 +994,12 @@ + + + + + + @@ -1001,6 +1011,12 @@ + + + + + + @@ -1110,6 +1126,10 @@ + + + + @@ -1117,6 +1137,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49800-49899.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49800-49899.xml index 6a04bfdbbe..648d911667 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49800-49899.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/49800-49899.xml @@ -556,6 +556,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70200-70299.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70200-70299.xml index 3191f63360..6d10d0f04e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70200-70299.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70200-70299.xml @@ -426,25 +426,52 @@ - - + + + + + + + + + + + - - + + + + + + + + + + + - - + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70300-70399.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70300-70399.xml index 77f532e0a6..20f342fffd 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70300-70399.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70300-70399.xml @@ -997,6 +997,9 @@ + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70400-70499.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70400-70499.xml index 212e2928f4..91542d1b1d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70400-70499.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/items/70400-70499.xml @@ -307,6 +307,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/02000-02099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/02000-02099.xml index fcd295a116..b160573cea 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/02000-02099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/02000-02099.xml @@ -107,9 +107,19 @@ NONE;STRIDER;WYVERN;WOLF 5 0 - OTHERS SINGLE + + + + + 12774 + 12777 + 13271 + 13275 + + + 2 diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/06100-06199.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/06100-06199.xml index 1918c84403..148230f512 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/06100-06199.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/06100-06199.xml @@ -1145,9 +1145,59 @@ SINGLE - - icon.skill0000 - A1 + icon.skill55314 + A2 + 1 + 3600 + G_EV_BUFF1 + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + -2 + -2 + 1 + SELF + SINGLE + true + + + 15 + PER + + + 15 + PER + + + 30 + PER + + + 33 + PER + + + 30 + PER + + + 75 + PER + + + 33 + DIFF + + + 35 + PER + + + 9 + 80 + + 1 diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/17100-17199.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/17100-17199.xml index ec26a650c6..395f874430 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/17100-17199.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/17100-17199.xml @@ -24,26 +24,80 @@ A1 - icon.skill0000 A1 200 -150 2000 + 300 + 2 + 1 + 37543 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + OTHERS + SINGLE + + + + + 13399 + 13403 + + + - - icon.skill0000 + icon.skill17111 A1 1500 10000 + 2 + 1 + 37552 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 1.5 + SELF + SINGLE + + + + + + 13399 + 1 + 180000 + + - - icon.skill0000 + icon.skill17112 A1 1500 10000 + 2 + 1 + 37553 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 1.5 + SELF + SINGLE + + + + + + 13403 + 1 + 180000 + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/32000-32099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/32000-32099.xml index 6a29e7d93e..3d363c555d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/32000-32099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/32000-32099.xml @@ -1,19 +1,91 @@  - - icon.skill0000 - A1 + icon.skill32000 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 20 + PER + + + 20 + PER + + - - icon.skill0000 - A1 + icon.skill32001 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 20 + PER + + + 20 + PER + + - - icon.skill0000 - A1 + icon.skill32002 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 30 + PER + + + 30 + PER + + @@ -51,14 +123,126 @@ A1 - - icon.skill0000 + icon.skill32012 + 2 + 1 + 49110 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill32013 + 2 + 1 + 49111 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/35000-35099.xml index 3050fcb4b3..31aa6a5cf5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/35000-35099.xml @@ -794,16 +794,16 @@ 1 -1 - - -3 + + 3 PER - - -3 + + 3 PER - - -3 + + 3 PER diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39000-39099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39000-39099.xml index df4623d095..f3ec2676e6 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39000-39099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39000-39099.xml @@ -349,9 +349,23 @@ - - icon.skill0000 + icon.skill39025 + 20000 + 2 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + SELF + SINGLE + + + + + + TOWN + + @@ -712,14 +726,180 @@ A1 - - icon.skill0000 + icon.skil39058 + 2 + 1 + 29578 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skil39059 + 2 + 1 + 49541 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -969,9 +1149,75 @@ A1 - - icon.skill0000 - A1 + icon.skill39085 + 1 + 1200 + VOTE + 1 + 29817 + 2 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39100-39199.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39100-39199.xml index 26a2a9402f..b9329a5fad 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39100-39199.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39100-39199.xml @@ -144,34 +144,394 @@ A1 - - icon.skill0000 + icon.skill39124 + 2 + 1 + 49667 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39125 + 2 + 1 + 49664 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39126 + 2 + 1 + 49668 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39127 + 2 + 1 + 49665 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39126 + 2 + 1 + 49669 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39127 + 2 + 1 + 49666 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -244,9 +604,75 @@ A1 - - icon.skill0000 - A1 + icon.skill39144 + 1 + 1200 + VOTE + 2 + 1 + 49518 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + @@ -398,9 +824,47 @@ A1 - - icon.skill0000 + icon.skill39152 + 2 + 1 + 49761 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -448,14 +912,154 @@ A1 - - icon.skill0000 - A1 + icon.skill39162 + 1 + 1200 + VOTE + 2 + 1 + 49773 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + + 5 + PER + + - - icon.skill0000 - A1 + icon.skill39163 + 1 + 1200 + VOTE + 2 + 1 + 49774 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + + 5 + PER + + @@ -498,14 +1102,207 @@ A1 - - icon.skill0000 + icon.skill39172 + 2 + 1 + 49785 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39173 + 2 + 1 + 49786 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39200-39299.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39200-39299.xml index a2b903add3..b49c9a0936 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39200-39299.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/39200-39299.xml @@ -172,15 +172,15 @@ icon.skill39224 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 300 + STRAWBERRY_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE true @@ -215,15 +215,15 @@ icon.skill39225 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 300 + MONGO_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE @@ -253,15 +253,15 @@ icon.skill39226 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 600 + CHERRY_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55000-55099.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55000-55099.xml index e8e5ee14b0..2f581d2a87 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55000-55099.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55000-55099.xml @@ -585,9 +585,38 @@ - - icon.skill0000 + icon.skil55043 + 2 + 1 + 29701 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + icon.skill55044 @@ -1808,7 +1837,7 @@ icon.skil55089 2 1 - 29578 + 49525 1 A1 NONE;STRIDER;WYVERN;WOLF @@ -1826,13 +1855,13 @@ - + - + - + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55100-55199.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55100-55199.xml index 469e2acf03..569212c870 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55100-55199.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55100-55199.xml @@ -340,9 +340,75 @@ A1 - - icon.skill0000 - A1 + icon.skill55160 + 1 + 1200 + VOTE + 1 + 49697 + 2 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55300-55399.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55300-55399.xml index 1645222571..e64189e46f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55300-55399.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/55300-55399.xml @@ -225,19 +225,127 @@ A1 - - icon.skill0000 - A1 + icon.skill55329 + A2 + 1 + 300 + STRAWBERRY_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + true + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 5 + PER + + + -10 + DEBUFF + + - - icon.skill0000 - A1 + icon.skill55330 + A2 + 1 + 300 + MONGO_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 5 + PER + + + -10 + DEBUFF + + - - icon.skill0000 - A1 + icon.skill55331 + A2 + 1 + 300 + CHERRY_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + + + 3 + DIFF + + + 3 + DIFF + + + 10 + PER + + + 15 + PER + + + 10 + PER + + + -10 + DEBUFF + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888.htm new file mode 100644 index 0000000000..283978f3b0 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/33888.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java new file mode 100644 index 0000000000..95282725e1 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/MerrySquashmas.java @@ -0,0 +1,656 @@ +/* + * 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 events.MerrySquashmas; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @URL https://eu.4gameforum.com/threads/621704/ + * @author vGodFather + */ +public class MerrySquashmas extends LongTimeEvent +{ + private static final int MANAGER = 33888; + private static final int SNOWY_NECTAR_SKILL = 17110; + + private static final List SQUASH_LIST = Arrays.asList(13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406); + private static final List LARGE_SQUASH_LIST = Arrays.asList(13400, 13401, 13404, 13405); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + + private static final int[][] DROPLIST = + { + // Snowy Rotten Squash + { 13401, Class_Buff_Scroll_1st, 70 }, + { 13401, Angel_Cat_Blessing_Chest, 60 }, + { 13401, Major_Healing_Potion, 70 }, + { 13401, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13401, XP_SP_Scroll_Normal, 50 }, + { 13401, XP_SP_Scroll_Medium, 40 }, + { 13401, Steel, 50 }, + { 13401, Adamantite_Nugget, 50 }, + { 13401, Mithril_Ore, 50 }, + { 13401, Leather, 50 }, + { 13401, Cokes, 50 }, + { 13401, Coarse_Bone_Powder, 50 }, + { 13401, Stone_of_Purity, 50 }, + { 13401, Stormbringer_Blade, 50 }, + { 13401, Stick_of_Faith_Shaft, 50 }, + { 13401, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 13401, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 13401, Sealed_Avadon_Glove_Fragment, 50 }, + { 13401, Sealed_Avadon_Boot_Design, 50 }, + { 13401, Orcish_Glaive_Blade, 50 }, + { 13401, Flamberge_Blade, 50 }, + { 13401, Crystallized_Ice_Bow_Shaft, 50 }, + { 13401, Crystal_Staff_Head, 50 }, + { 13401, Blue_Wolf_Gaiter_Material, 50 }, + { 13401, Battle_Axe_Head, 50 }, + { 13401, Recipe_Battle_Axe, 50 }, + { 13401, Recipe_Blue_Wolf_Gaiters, 50 }, + { 13401, Recipe_Crystal_Staff, 50 }, + { 13401, Recipe_Crystallized_Ice_Bow, 50 }, + { 13401, Recipe_Divine_Gloves, 50 }, + { 13401, Recipe_Divine_Stockings, 50 }, + { 13401, Recipe_Flamberge, 50 }, + { 13401, Recipe_Full_Plate_Helmet, 50 }, + { 13401, Recipe_Full_Plate_Shield, 50 }, + { 13401, Recipe_Orcish_Glaive, 50 }, + { 13401, Recipe_Sealed_Avadon_Boots, 50 }, + { 13401, Recipe_Sealed_Avadon_Gloves, 50 }, + { 13401, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 13401, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 13401, Recipe_Stick_of_Faith, 50 }, + { 13401, Recipe_Stormbringer, 50 }, + + // Snowy Ripe Squash + { 13400, Class_Buff_Scroll_1st, 70 }, + { 13400, Angel_Cat_Blessing_Chest, 60 }, + { 13400, Major_Healing_Potion, 70 }, + { 13400, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13400, XP_SP_Scroll_Normal, 50 }, + { 13400, Coal, 50 }, + { 13400, Animal_Bone, 50 }, + { 13400, Varnish, 50 }, + { 13400, Recipe_Atuba_Hammer, 50 }, + { 13400, Recipe_Gastraphetes, 50 }, + { 13400, Recipe_Maingauche, 50 }, + { 13400, Recipe_Staff_of_Life, 50 }, + { 13400, Recipe_Sword_of_Revolution, 50 }, + { 13400, Atuba_Hammer_Head, 50 }, + { 13400, Gastraphetes_Shaft, 50 }, + { 13400, Maingauche_Edge, 50 }, + { 13400, Staff_of_Life_Shaft, 50 }, + { 13400, Sword_of_Revolution_Blade, 50 }, + + // Snowy Royal Ripe Squash + { 13402, Battle_Axe, 5 }, + { 13402, Crystal_Staff, 5 }, + { 13402, Crystallized_Ice_Bow, 5 }, + { 13402, Flamberge, 5 }, + { 13402, Orcish_Glaive, 5 }, + { 13402, Stick_of_Faith, 5 }, + { 13402, Stormbringer, 5 }, + { 13402, Divine_Gloves, 5 }, + { 13402, Divine_Stockings, 5 }, + { 13402, Divine_Tunic, 5 }, + { 13402, Drake_Leather_Armor, 5 }, + { 13402, Drake_Leather_Boots, 5 }, + { 13402, Full_Plate_Armor, 5 }, + { 13402, Full_Plate_Helmet, 5 }, + { 13402, Full_Plate_Shield, 5 }, + { 13402, Class_Buff_Scroll_2nd , 50 }, + { 13402, Angel_Cat_Blessing_Chest, 50 }, + { 13402, Blessed_Scroll_of_Escape, 50 }, + { 13402, Blessed_Scroll_of_Resurrection, 50 }, + { 13402, Greater_CP_Potion, 50 }, + { 13402, Quick_Healing_Potion, 50 }, + { 13402, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 13402, Special_Pirate_Fruit, 50 }, + { 13402, XP_SP_Scroll_High, 50 }, + { 13402, XP_SP_Scroll_Medium, 50 }, + { 13402, Crystal_C, 50 }, + { 13402, Scroll_Enchant_Armor_C, 50 }, + { 13402, Scroll_Enchant_Weapon_C, 50 }, + { 13402, Scroll_Dance_of_Fire, 70 }, + { 13402, Scroll_Hunter_Song, 70 }, + { 13402, Mithril_Alloy, 50 }, + { 13402, Mold_Hardener, 50 }, + { 13402, Oriharukon, 50 }, + { 13402, Silver_Mold, 50 }, + + // Snowy Large Ripe Squash + { 13404, Atuba_Hammer, 20 }, + { 13404, Gastraphetes, 20 }, + { 13404, Maingauche, 20 }, + { 13404, Staff_of_Life, 20 }, + { 13404, Sword_of_Revolution, 20 }, + { 13404, War_Pick, 20 }, + { 13404, Class_Buff_Scroll_1st, 50 }, + { 13404, Class_Buff_Scroll_2nd , 50 }, + { 13404, Angel_Cat_Blessing_Chest, 50 }, + { 13404, Greater_CP_Potion, 50 }, + { 13404, Rice_Cake_of_Fighting_Spirit, 50 }, + { 13404, Special_Pirate_Fruit, 50 }, + { 13404, XP_SP_Scroll_High, 50 }, + { 13404, XP_SP_Scroll_Medium, 50 }, + { 13404, Crystal_D, 50 }, + { 13404, Scroll_Enchant_Armor_D, 50 }, + { 13404, Scroll_Enchant_Weapon_D, 50 }, + { 13404, Scroll_Acumen, 70 }, + { 13404, Scroll_Berserker_Spirit, 70 }, + { 13404, Scroll_Blessed_Body, 70 }, + { 13404, Scroll_Death_Whisper, 70 }, + { 13404, Scroll_Guidance, 70 }, + { 13404, Scroll_Haste, 70 }, + { 13404, Scroll_Magic_Barrier, 70 }, + { 13404, Scroll_Mana_Regeneration, 70 }, + { 13404, Scroll_Regeneration, 70 }, + { 13404, Enria, 50 }, + { 13404, Mithril_Alloy, 50 }, + { 13404, Mold_Hardener, 50 }, + { 13404, Mold_Lubricant, 50 }, + { 13404, Silver_Mold, 50 }, + { 13404, Varnish_of_Purity, 50 }, + + // Snowy Large Rotten Squash + { 13405, Class_Buff_Scroll_1st, 70 }, + { 13405, Angel_Cat_Blessing_Chest, 60 }, + { 13405, Greater_CP_Potion, 60 }, + { 13405, Quick_Healing_Potion, 60 }, + { 13405, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13405, Adamantite_Nugget, 50 }, + { 13405, Asofe, 50 }, + { 13405, Coarse_Bone_Powder, 50 }, + { 13405, Cokes, 50 }, + { 13405, High_grade_Suede, 50 }, + { 13405, Mithril_Ore, 50 }, + { 13405, Mold_Glue, 50 }, + { 13405, Oriharukon_Ore, 50 }, + { 13405, Steel, 50 }, + { 13405, Steel_Mold, 50 }, + { 13405, Stone_of_Purity, 50 }, + { 13405, Synthetic_Braid, 50 }, + { 13405, Synthetic_Cokes, 50 }, + { 13405, Varnish_of_Purity, 50 }, + { 13405, Avadon_Robe_Fabric, 50 }, + { 13405, Berserker_Blade_Edge, 50 }, + { 13405, Blue_Wolf_Breastplate_Part, 50 }, + { 13405, Dark_Screamer_Edge, 50 }, + { 13405, Divine_Tunic_Fabric, 50 }, + { 13405, Eminence_Bow_Shaft, 50 }, + { 13405, Fisted_Blade_Piece, 50 }, + { 13405, Full_Plate_Armor_Temper, 50 }, + { 13405, Poleaxe_Blade, 50 }, + { 13405, Sage_Staff_Head, 50 }, + { 13405, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13405, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13405, Sealed_Doom_Helmet_Design, 50 }, + { 13405, Sword_of_Nightmare_Blade, 50 }, + { 13405, Recipe_Avadon_Robe, 50 }, + { 13405, Recipe_Berserker_Blade, 50 }, + { 13405, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13405, Recipe_Dark_Screamer, 50 }, + { 13405, Recipe_Divine_Tunic, 50 }, + { 13405, Recipe_Eminence_Bow, 50 }, + { 13405, Recipe_Fisted_Blade, 50 }, + { 13405, Recipe_Full_Plate_Armor, 50 }, + { 13405, Recipe_Homunkulus_Sword, 50 }, + { 13405, Recipe_Leather_Armor_of_Doom, 50 }, + { 13405, Recipe_Poleaxe, 50 }, + { 13405, Recipe_Sage_Staff, 50 }, + { 13405, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13405, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13405, Recipe_Sealed_Doom_Helmet, 50 }, + { 13405, Recipe_Sword_of_Nightmare, 50 }, + + // Snow Royal Large Ripe Squash + { 13406, Berserker_Blade, 5 }, + { 13406, Dark_Screamer, 5 }, + { 13406, Eminence_Bow, 5 }, + { 13406, Fisted_Blade, 5 }, + { 13406, Homunkulus_Sword, 5 }, + { 13406, Poleaxe, 5 }, + { 13406, Sage_Staff, 5 }, + { 13406, Sword_of_Nightmare, 5 }, + { 13406, Avadon_Robe, 5 }, + { 13406, Blue_Wolf_Breastplate, 5 }, + { 13406, Blue_Wolf_Gaiters, 5 }, + { 13406, Leather_Armor_of_Doom, 5 }, + { 13406, Sealed_Avadon_Boots, 10 }, + { 13406, Sealed_Avadon_Circlet, 10 }, + { 13406, Sealed_Avadon_Gloves, 10 }, + { 13406, Sealed_Blue_Wolf_Boots, 10 }, + { 13406, Sealed_Blue_Wolf_Gloves, 10 }, + { 13406, Sealed_Blue_Wolf_Helmet, 10 }, + { 13406, Sealed_Doom_Boots, 10 }, + { 13406, Sealed_Doom_Gloves, 10 }, + { 13406, Sealed_Doom_Helmet, 10 }, + { 13406, Class_Buff_Scroll_2nd , 50 }, + { 13406, Angel_Cat_Blessing_Chest, 50 }, + { 13406, Blessed_Scroll_of_Escape, 50 }, + { 13406, Blessed_Scroll_of_Resurrection, 50 }, + { 13406, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13406, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13406, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13406, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13406, Crystal_B, 50 }, + { 13406, Crystal_C, 50 }, + { 13406, Greater_CP_Potion, 50 }, + { 13406, Major_Healing_Potion, 50 }, + { 13406, Quick_Healing_Potion, 70 }, + { 13406, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13406, Scroll_Dance_of_Fire, 60 }, + { 13406, Scroll_Hunter_Song, 60 }, + { 13406, Scroll_Enchant_Armor_C, 50 }, + { 13406, Scroll_Enchant_Weapon_C, 40 }, + { 13406, Special_Pirate_Fruit, 60 }, + { 13406, XP_SP_Scroll_High, 60 }, + { 13406, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public MerrySquashmas() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == SNOWY_NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 13399: // Snowy Squash Seed + { + randomSpawn(13402, 13401, 13400, npc, true); + break; + } + case 13403: // Large Snowy Squash Seed + { + randomSpawn(13406, 13405, 13404, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new MerrySquashmas(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/config.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/config.xml new file mode 100644 index 0000000000..f23e001971 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/MerrySquashmas/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860-1.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860.htm new file mode 100644 index 0000000000..1687eeb4e4 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/31860.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/SquashEvent.java b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/SquashEvent.java new file mode 100644 index 0000000000..80e749fc9e --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/SquashEvent.java @@ -0,0 +1,655 @@ +/* + * 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 events.SquashEvent; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @author vGodFather + */ +public class SquashEvent extends LongTimeEvent +{ + private static final int MANAGER = 31860; + private static final int NECTAR_SKILL = 2005; + + private static final List SQUASH_LIST = Arrays.asList(12774, 12776, 12775, 12777, 12778, 12779, 13016, 13017); + private static final List LARGE_SQUASH_LIST = Arrays.asList(12777, 12778, 12779, 13017); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + + private static final int[][] DROPLIST = + { + // High Quality Squash + { 12775, Class_Buff_Scroll_1st, 70 }, + { 12775, Angel_Cat_Blessing_Chest, 60 }, + { 12775, Major_Healing_Potion, 70 }, + { 12775, Rice_Cake_of_Fighting_Spirit, 60 }, + { 12775, XP_SP_Scroll_Normal, 50 }, + { 12775, XP_SP_Scroll_Medium, 40 }, + { 12775, Steel, 50 }, + { 12775, Adamantite_Nugget, 50 }, + { 12775, Mithril_Ore, 50 }, + { 12775, Leather, 50 }, + { 12775, Cokes, 50 }, + { 12775, Coarse_Bone_Powder, 50 }, + { 12775, Stone_of_Purity, 50 }, + { 12775, Stormbringer_Blade, 50 }, + { 12775, Stick_of_Faith_Shaft, 50 }, + { 12775, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 12775, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 12775, Sealed_Avadon_Glove_Fragment, 50 }, + { 12775, Sealed_Avadon_Boot_Design, 50 }, + { 12775, Orcish_Glaive_Blade, 50 }, + { 12775, Flamberge_Blade, 50 }, + { 12775, Crystallized_Ice_Bow_Shaft, 50 }, + { 12775, Crystal_Staff_Head, 50 }, + { 12775, Blue_Wolf_Gaiter_Material, 50 }, + { 12775, Battle_Axe_Head, 50 }, + { 12775, Recipe_Battle_Axe, 50 }, + { 12775, Recipe_Blue_Wolf_Gaiters, 50 }, + { 12775, Recipe_Crystal_Staff, 50 }, + { 12775, Recipe_Crystallized_Ice_Bow, 50 }, + { 12775, Recipe_Divine_Gloves, 50 }, + { 12775, Recipe_Divine_Stockings, 50 }, + { 12775, Recipe_Flamberge, 50 }, + { 12775, Recipe_Full_Plate_Helmet, 50 }, + { 12775, Recipe_Full_Plate_Shield, 50 }, + { 12775, Recipe_Orcish_Glaive, 50 }, + { 12775, Recipe_Sealed_Avadon_Boots, 50 }, + { 12775, Recipe_Sealed_Avadon_Gloves, 50 }, + { 12775, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 12775, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 12775, Recipe_Stick_of_Faith, 50 }, + { 12775, Recipe_Stormbringer, 50 }, + + // Defective Squash + { 12776, Class_Buff_Scroll_1st, 70 }, + { 12776, Angel_Cat_Blessing_Chest, 60 }, + { 12776, Major_Healing_Potion, 70 }, + { 12776, Rice_Cake_of_Fighting_Spirit, 60 }, + { 12776, XP_SP_Scroll_Normal, 50 }, + { 12776, Coal, 50 }, + { 12776, Animal_Bone, 50 }, + { 12776, Varnish, 50 }, + { 12776, Recipe_Atuba_Hammer, 50 }, + { 12776, Recipe_Gastraphetes, 50 }, + { 12776, Recipe_Maingauche, 50 }, + { 12776, Recipe_Staff_of_Life, 50 }, + { 12776, Recipe_Sword_of_Revolution, 50 }, + { 12776, Atuba_Hammer_Head, 50 }, + { 12776, Gastraphetes_Shaft, 50 }, + { 12776, Maingauche_Edge, 50 }, + { 12776, Staff_of_Life_Shaft, 50 }, + { 12776, Sword_of_Revolution_Blade, 50 }, + + // High Quality Large Squash + { 12778, Battle_Axe, 5 }, + { 12778, Crystal_Staff, 5 }, + { 12778, Crystallized_Ice_Bow, 5 }, + { 12778, Flamberge, 5 }, + { 12778, Orcish_Glaive, 5 }, + { 12778, Stick_of_Faith, 5 }, + { 12778, Stormbringer, 5 }, + { 12778, Divine_Gloves, 5 }, + { 12778, Divine_Stockings, 5 }, + { 12778, Divine_Tunic, 5 }, + { 12778, Drake_Leather_Armor, 5 }, + { 12778, Drake_Leather_Boots, 5 }, + { 12778, Full_Plate_Armor, 5 }, + { 12778, Full_Plate_Helmet, 5 }, + { 12778, Full_Plate_Shield, 5 }, + { 12778, Class_Buff_Scroll_2nd , 50 }, + { 12778, Angel_Cat_Blessing_Chest, 50 }, + { 12778, Blessed_Scroll_of_Escape, 50 }, + { 12778, Blessed_Scroll_of_Resurrection, 50 }, + { 12778, Greater_CP_Potion, 50 }, + { 12778, Quick_Healing_Potion, 50 }, + { 12778, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 12778, Special_Pirate_Fruit, 50 }, + { 12778, XP_SP_Scroll_High, 50 }, + { 12778, XP_SP_Scroll_Medium, 50 }, + { 12778, Crystal_C, 50 }, + { 12778, Scroll_Enchant_Armor_C, 50 }, + { 12778, Scroll_Enchant_Weapon_C, 50 }, + { 12778, Scroll_Dance_of_Fire, 70 }, + { 12778, Scroll_Hunter_Song, 70 }, + { 12778, Mithril_Alloy, 50 }, + { 12778, Mold_Hardener, 50 }, + { 12778, Oriharukon, 50 }, + { 12778, Silver_Mold, 50 }, + + // Defective Large Squash + { 12779, Atuba_Hammer, 20 }, + { 12779, Gastraphetes, 20 }, + { 12779, Maingauche, 20 }, + { 12779, Staff_of_Life, 20 }, + { 12779, Sword_of_Revolution, 20 }, + { 12779, War_Pick, 20 }, + { 12779, Class_Buff_Scroll_1st, 50 }, + { 12779, Class_Buff_Scroll_2nd , 50 }, + { 12779, Angel_Cat_Blessing_Chest, 50 }, + { 12779, Greater_CP_Potion, 50 }, + { 12779, Rice_Cake_of_Fighting_Spirit, 50 }, + { 12779, Special_Pirate_Fruit, 50 }, + { 12779, XP_SP_Scroll_High, 50 }, + { 12779, XP_SP_Scroll_Medium, 50 }, + { 12779, Crystal_D, 50 }, + { 12779, Scroll_Enchant_Armor_D, 50 }, + { 12779, Scroll_Enchant_Weapon_D, 50 }, + { 12779, Scroll_Acumen, 70 }, + { 12779, Scroll_Berserker_Spirit, 70 }, + { 12779, Scroll_Blessed_Body, 70 }, + { 12779, Scroll_Death_Whisper, 70 }, + { 12779, Scroll_Guidance, 70 }, + { 12779, Scroll_Haste, 70 }, + { 12779, Scroll_Magic_Barrier, 70 }, + { 12779, Scroll_Mana_Regeneration, 70 }, + { 12779, Scroll_Regeneration, 70 }, + { 12779, Enria, 50 }, + { 12779, Mithril_Alloy, 50 }, + { 12779, Mold_Hardener, 50 }, + { 12779, Mold_Lubricant, 50 }, + { 12779, Silver_Mold, 50 }, + { 12779, Varnish_of_Purity, 50 }, + + // Royal Ripe Squash + { 13016, Class_Buff_Scroll_1st, 70 }, + { 13016, Angel_Cat_Blessing_Chest, 60 }, + { 13016, Greater_CP_Potion, 60 }, + { 13016, Quick_Healing_Potion, 60 }, + { 13016, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13016, Adamantite_Nugget, 50 }, + { 13016, Asofe, 50 }, + { 13016, Coarse_Bone_Powder, 50 }, + { 13016, Cokes, 50 }, + { 13016, High_grade_Suede, 50 }, + { 13016, Mithril_Ore, 50 }, + { 13016, Mold_Glue, 50 }, + { 13016, Oriharukon_Ore, 50 }, + { 13016, Steel, 50 }, + { 13016, Steel_Mold, 50 }, + { 13016, Stone_of_Purity, 50 }, + { 13016, Synthetic_Braid, 50 }, + { 13016, Synthetic_Cokes, 50 }, + { 13016, Varnish_of_Purity, 50 }, + { 13016, Avadon_Robe_Fabric, 50 }, + { 13016, Berserker_Blade_Edge, 50 }, + { 13016, Blue_Wolf_Breastplate_Part, 50 }, + { 13016, Dark_Screamer_Edge, 50 }, + { 13016, Divine_Tunic_Fabric, 50 }, + { 13016, Eminence_Bow_Shaft, 50 }, + { 13016, Fisted_Blade_Piece, 50 }, + { 13016, Full_Plate_Armor_Temper, 50 }, + { 13016, Poleaxe_Blade, 50 }, + { 13016, Sage_Staff_Head, 50 }, + { 13016, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13016, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13016, Sealed_Doom_Helmet_Design, 50 }, + { 13016, Sword_of_Nightmare_Blade, 50 }, + { 13016, Recipe_Avadon_Robe, 50 }, + { 13016, Recipe_Berserker_Blade, 50 }, + { 13016, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13016, Recipe_Dark_Screamer, 50 }, + { 13016, Recipe_Divine_Tunic, 50 }, + { 13016, Recipe_Eminence_Bow, 50 }, + { 13016, Recipe_Fisted_Blade, 50 }, + { 13016, Recipe_Full_Plate_Armor, 50 }, + { 13016, Recipe_Homunkulus_Sword, 50 }, + { 13016, Recipe_Leather_Armor_of_Doom, 50 }, + { 13016, Recipe_Poleaxe, 50 }, + { 13016, Recipe_Sage_Staff, 50 }, + { 13016, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13016, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13016, Recipe_Sealed_Doom_Helmet, 50 }, + { 13016, Recipe_Sword_of_Nightmare, 50 }, + + // Royal Large Ripe Squash + { 13017, Berserker_Blade, 5 }, + { 13017, Dark_Screamer, 5 }, + { 13017, Eminence_Bow, 5 }, + { 13017, Fisted_Blade, 5 }, + { 13017, Homunkulus_Sword, 5 }, + { 13017, Poleaxe, 5 }, + { 13017, Sage_Staff, 5 }, + { 13017, Sword_of_Nightmare, 5 }, + { 13017, Avadon_Robe, 5 }, + { 13017, Blue_Wolf_Breastplate, 5 }, + { 13017, Blue_Wolf_Gaiters, 5 }, + { 13017, Leather_Armor_of_Doom, 5 }, + { 13017, Sealed_Avadon_Boots, 10 }, + { 13017, Sealed_Avadon_Circlet, 10 }, + { 13017, Sealed_Avadon_Gloves, 10 }, + { 13017, Sealed_Blue_Wolf_Boots, 10 }, + { 13017, Sealed_Blue_Wolf_Gloves, 10 }, + { 13017, Sealed_Blue_Wolf_Helmet, 10 }, + { 13017, Sealed_Doom_Boots, 10 }, + { 13017, Sealed_Doom_Gloves, 10 }, + { 13017, Sealed_Doom_Helmet, 10 }, + { 13017, Class_Buff_Scroll_2nd , 50 }, + { 13017, Angel_Cat_Blessing_Chest, 50 }, + { 13017, Blessed_Scroll_of_Escape, 50 }, + { 13017, Blessed_Scroll_of_Resurrection, 50 }, + { 13017, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13017, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13017, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13017, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13017, Crystal_B, 50 }, + { 13017, Crystal_C, 50 }, + { 13017, Greater_CP_Potion, 50 }, + { 13017, Major_Healing_Potion, 50 }, + { 13017, Quick_Healing_Potion, 70 }, + { 13017, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13017, Scroll_Dance_of_Fire, 60 }, + { 13017, Scroll_Hunter_Song, 60 }, + { 13017, Scroll_Enchant_Armor_C, 50 }, + { 13017, Scroll_Enchant_Weapon_C, 40 }, + { 13017, Special_Pirate_Fruit, 60 }, + { 13017, XP_SP_Scroll_High, 60 }, + { 13017, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public SquashEvent() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 12774: // Young Squash + { + randomSpawn(13016, 12775, 12776, npc, true); + break; + } + case 12777: // Large Young Squash + { + randomSpawn(13017, 12778, 12779, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new SquashEvent(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/config.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/config.xml new file mode 100644 index 0000000000..fc34a1a75d --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/SquashEvent/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/ThePowerOfLove/config.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/ThePowerOfLove/config.xml index e3e3f9288a..38a1bd48c4 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/ThePowerOfLove/config.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/ThePowerOfLove/config.xml @@ -1,5 +1,5 @@ - + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/TotalRecall/config.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/TotalRecall/config.xml index a0e458844c..fb3b0613d7 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/TotalRecall/config.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/TotalRecall/config.xml @@ -1,5 +1,5 @@ - + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm new file mode 100644 index 0000000000..f01e3ea43b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860-1.htm @@ -0,0 +1,14 @@ +Buzz the Cat:
+Squash grow up by taking in nectar. After planting a seed, drip nectar on it and it will grow quickly! +After taking enough nectar, the squash will evolve. If you hit it with a weapon, the squash will crack open! +Be careful, there are several things you should look out for. +First of all, if you hit it before it's fully grown, it will wilt from lack of nutrition. +Also, since a squash tends to flee, you should try to crack it open before it gets out of hand! +Young squash that are not fully grown will run off in 3 minutes and fully grown squash will run away in a minute and 30 seconds! +Also, a large squash can't be opened with a regular weapon! I heard that there are chrono weapons that produce musical sounds when you hit it against something. +You will only be able to hit large squash with weapons of this type. +One last thing! Since it's not easy to open a large squash by yourself, you should find a friend who can help you open it. +Do you understand everything I've told you? +Posible rewards you can get: Adena, Fireworks, Large Fireworks, Life Stones, Gems A and S grades, Crystals A and S grades, Giant Codex, Lunargent and Hellfire Oil, Blessed Scroll of Escape, Quick Healing Potions, Large Lucky Cubs, Ancient Enchant Scrolls A-grade, Vitality Ginseng or powerful herbs.

+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860.htm b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860.htm new file mode 100644 index 0000000000..8e18d11b54 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/31860.htm @@ -0,0 +1,10 @@ + +Buzz the Cat:
+Nice to meet you! I'm Buzz the Cat, faithful employee to Gardener Fordson of Floran. My boss is one of the greatest agricultural geniuses in all of Aden. After such a successful summer, Gardener Fordson has reinvested in a new lot of improved magical squash seeds. He has decided to grow them for the Fall season. Fortunately for you, we still have more seeds than we know what to do with. We would love more nectar to develop full grown squashes to meet our increased customer demands.
+Would you like to help me out?
I will trade you seeds for nectar. You can get nectar by killing any monsters near your level all throughout the world.
+ + +

+Plant the seed by double-clicking on it! Raise it well and claim your prizes! Good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java new file mode 100644 index 0000000000..f9db872a98 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/WatermelonNinja.java @@ -0,0 +1,655 @@ +/* + * 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 events.WatermelonNinja; + +import java.util.Arrays; +import java.util.List; + +import com.l2jmobius.commons.util.Rnd; +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.model.L2Object; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.LongTimeEvent; +import com.l2jmobius.gameserver.model.skills.Skill; +import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; + +/** + * @URL https://eu.4gameforum.com/threads/653089/ + * @author vGodFather + */ +public class WatermelonNinja extends LongTimeEvent +{ + private static final int MANAGER = 31860; + private static final int NECTAR_SKILL = 2005; + + private static final List SQUASH_LIST = Arrays.asList(13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278); + private static final List LARGE_SQUASH_LIST = Arrays.asList(13274, 13278); + private static final List CHRONO_LIST = Arrays.asList(4202, 5133, 5817, 7058, 8350); + + //@formatter:off + private static final String[] _NOCHRONO_TEXT = + { + "You cannot kill me without Chrono", + "Hehe...keep trying...", + "Nice try...", + "Tired ?", + "Go go ! haha..." + }; + private static final String[] _CHRONO_TEXT = + { + "Arghh... Chrono weapon...", + "My end is coming...", + "Please leave me!", + "Heeellpppp...", + "Somebody help me please..." + }; + private static final String[] _NECTAR_TEXT = + { + "Yummie... Nectar...", + "Plase give me more...", + "Hmmm.. More.. I need more...", + "I would like you more, if you give me more...", + "Hmmmmmmm...", + "My favourite..." + }; + + // Weapon + private static final int Atuba_Hammer = 187; + private static final int Gastraphetes = 278; + private static final int Maingauche = 224; + private static final int Staff_of_Life = 189; + private static final int Sword_of_Revolution = 129; + private static final int War_Pick = 294; + private static final int Battle_Axe = 160; + private static final int Crystal_Staff = 192; + private static final int Crystallized_Ice_Bow = 281; + private static final int Flamberge = 71; + private static final int Orcish_Glaive = 298; + private static final int Stick_of_Faith = 193; + private static final int Stormbringer = 72; + private static final int Berserker_Blade = 5286; + private static final int Dark_Screamer = 233; + private static final int Eminence_Bow = 286; + private static final int Fisted_Blade = 265; + private static final int Homunkulus_Sword = 84; + private static final int Poleaxe = 95; + private static final int Sage_Staff = 200; + private static final int Sword_of_Nightmare = 134; + + // Armor + private static final int Divine_Gloves = 2463; + private static final int Divine_Stockings = 473; + private static final int Divine_Tunic = 442; + private static final int Drake_Leather_Armor = 401; + private static final int Drake_Leather_Boots = 2437; + private static final int Full_Plate_Armor = 356; + private static final int Full_Plate_Helmet = 2414; + private static final int Full_Plate_Shield = 2497; + private static final int Avadon_Robe = 2406; + private static final int Blue_Wolf_Breastplate = 358; + private static final int Blue_Wolf_Gaiters = 2380; + private static final int Leather_Armor_of_Doom = 2392; + private static final int Sealed_Avadon_Boots = 600; + private static final int Sealed_Avadon_Circlet = 2415; + private static final int Sealed_Avadon_Gloves = 2464; + private static final int Sealed_Blue_Wolf_Boots = 2439; + private static final int Sealed_Blue_Wolf_Gloves = 2487; + private static final int Sealed_Blue_Wolf_Helmet = 2416; + private static final int Sealed_Doom_Boots = 601; + private static final int Sealed_Doom_Gloves = 2475; + private static final int Sealed_Doom_Helmet = 2417; + + // Misc + private static final int Class_Buff_Scroll_1st = 29011; + private static final int Angel_Cat_Blessing_Chest = 29584; + private static final int Major_Healing_Potion = 1539; + private static final int Rice_Cake_of_Fighting_Spirit = 49080; + private static final int XP_SP_Scroll_Normal = 29648; + private static final int XP_SP_Scroll_Medium = 29519; + private static final int Greater_CP_Potion = 5592; + private static final int Quick_Healing_Potion = 1540; + private static final int Class_Buff_Scroll_2nd = 29698; + private static final int Scroll_Enchant_Armor_D = 956; + private static final int Scroll_Enchant_Weapon_D = 955; + private static final int Scroll_Enchant_Armor_C = 952; + private static final int Scroll_Enchant_Weapon_C = 951; + private static final int Blessed_Scroll_Enchant_Armor_C = 29022; + private static final int Blessed_Scroll_Enchant_Weapon_C = 29021; + private static final int Blessed_Scroll_Enchant_Armor_D = 29020; + private static final int Blessed_Scroll_Enchant_Weapon_D = 29019; + private static final int Special_Pirate_Fruit = 49518; + private static final int XP_SP_Scroll_High = 29010; + private static final int Blessed_Scroll_of_Escape = 1538; + private static final int Blessed_Scroll_of_Resurrection = 3936; + private static final int Rice_Cake_of_Flaming_Fighting_Spirit = 49081; + + // Buff Scroll + private static final int Scroll_Acumen = 3929; + private static final int Scroll_Berserker_Spirit = 49435; + private static final int Scroll_Blessed_Body = 29690; + private static final int Scroll_Death_Whisper = 3927; + private static final int Scroll_Guidance = 3926; + private static final int Scroll_Haste = 3930; + private static final int Scroll_Magic_Barrier = 29689; + private static final int Scroll_Mana_Regeneration = 4218; + private static final int Scroll_Regeneration = 29688; + private static final int Scroll_Dance_of_Fire = 29014; + private static final int Scroll_Hunter_Song = 29013; + + // Recipe + private static final int Recipe_Atuba_Hammer = 2287; + private static final int Recipe_Gastraphetes = 2267; + private static final int Recipe_Maingauche = 2276; + private static final int Recipe_Staff_of_Life = 2289; + private static final int Recipe_Sword_of_Revolution = 2272; + private static final int Recipe_Battle_Axe = 2301; + private static final int Recipe_Blue_Wolf_Gaiters = 4982; + private static final int Recipe_Crystal_Staff = 2305; + private static final int Recipe_Crystallized_Ice_Bow = 2312; + private static final int Recipe_Divine_Gloves = 3017; + private static final int Recipe_Divine_Stockings = 2234; + private static final int Recipe_Flamberge = 2297; + private static final int Recipe_Full_Plate_Helmet = 3012; + private static final int Recipe_Full_Plate_Shield = 3019; + private static final int Recipe_Orcish_Glaive = 2317; + private static final int Recipe_Sealed_Avadon_Boots = 4959; + private static final int Recipe_Sealed_Avadon_Gloves = 4953; + private static final int Recipe_Sealed_Blue_Wolf_Boots = 4992; + private static final int Recipe_Sealed_Blue_Wolf_Gloves = 4998; + private static final int Recipe_Stick_of_Faith = 2306; + private static final int Recipe_Stormbringer = 2298; + private static final int Recipe_Avadon_Robe = 4951; + private static final int Recipe_Berserker_Blade = 5436; + private static final int Recipe_Blue_Wolf_Breastplate = 4981; + private static final int Recipe_Dark_Screamer = 2345; + private static final int Recipe_Divine_Tunic = 2233; + private static final int Recipe_Eminence_Bow = 2359; + private static final int Recipe_Fisted_Blade = 2346; + private static final int Recipe_Full_Plate_Armor = 2231; + private static final int Recipe_Homunkulus_Sword = 2330; + private static final int Recipe_Leather_Armor_of_Doom = 4985; + private static final int Recipe_Poleaxe = 2331; + private static final int Recipe_Sage_Staff = 2341; + private static final int Recipe_Sealed_Avadon_Circlet = 4952; + private static final int Recipe_Sealed_Blue_Wolf_Helmet = 4990; + private static final int Recipe_Sealed_Doom_Helmet = 4991; + private static final int Recipe_Sword_of_Nightmare = 2333; + + // Main Material + private static final int Animal_Bone = 1872; + private static final int Coal = 1870; + private static final int Varnish = 1865; + private static final int Stone_of_Purity = 1875; + private static final int Steel = 1880; + private static final int Mithril_Ore = 1876; + private static final int Leather = 1882; + private static final int Cokes = 1879; + private static final int Coarse_Bone_Powder = 1881; + private static final int Adamantite_Nugget = 1877; + private static final int Asofe = 4043; + private static final int Mold_Glue = 4039; + private static final int Oriharukon_Ore = 1874; + private static final int Steel_Mold = 1883; + private static final int Synthetic_Braid = 1889; + private static final int Synthetic_Cokes = 1888; + private static final int Varnish_of_Purity = 1887; + private static final int High_grade_Suede = 1885; + private static final int Enria = 4042; + private static final int Mithril_Alloy = 1890; + private static final int Mold_Hardener = 4041; + private static final int Mold_Lubricant = 4040; + private static final int Crystal_D = 1458; + private static final int Crystal_C = 1459; + private static final int Crystal_B = 1460; + private static final int Silver_Mold = 1886; + private static final int Oriharukon = 1893; + + // Sub Material + private static final int Atuba_Hammer_Head = 2049; + private static final int Gastraphetes_Shaft = 2029; + private static final int Maingauche_Edge = 2038; + private static final int Staff_of_Life_Shaft = 2051; + private static final int Sword_of_Revolution_Blade = 2034; + private static final int Stormbringer_Blade = 2060; + private static final int Stick_of_Faith_Shaft = 2068; + private static final int Sealed_Blue_Wolf_Glove_Fabric = 4096; + private static final int Sealed_Blue_Wolf_Boot_Design = 4090; + private static final int Sealed_Avadon_Glove_Fragment = 4073; + private static final int Sealed_Avadon_Boot_Design = 4098; + private static final int Orcish_Glaive_Blade = 2075; + private static final int Flamberge_Blade = 2059; + private static final int Crystallized_Ice_Bow_Shaft = 2074; + private static final int Crystal_Staff_Head = 2067; + private static final int Blue_Wolf_Gaiter_Material = 4080; + private static final int Battle_Axe_Head = 2063; + private static final int Avadon_Robe_Fabric = 4071; + private static final int Berserker_Blade_Edge = 5530; + private static final int Blue_Wolf_Breastplate_Part = 4078; + private static final int Dark_Screamer_Edge = 2107; + private static final int Divine_Tunic_Fabric = 1988; + private static final int Eminence_Bow_Shaft = 2121; + private static final int Fisted_Blade_Piece = 2108; + private static final int Full_Plate_Armor_Temper = 1986; + private static final int Poleaxe_Blade = 2093; + private static final int Sage_Staff_Head = 2109; + private static final int Sealed_Avadon_Circlet_Pattern = 4072; + private static final int Sealed_Blue_Wolf_Helmet_Design = 4088; + private static final int Sealed_Doom_Helmet_Design = 4089; + private static final int Sword_of_Nightmare_Blade = 2095; + + private static final int[][] DROPLIST = + { + // Rain Watermelon + { 13273, Class_Buff_Scroll_1st, 70 }, + { 13273, Angel_Cat_Blessing_Chest, 60 }, + { 13273, Major_Healing_Potion, 70 }, + { 13273, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13273, XP_SP_Scroll_Normal, 50 }, + { 13273, XP_SP_Scroll_Medium, 40 }, + { 13273, Steel, 50 }, + { 13273, Adamantite_Nugget, 50 }, + { 13273, Mithril_Ore, 50 }, + { 13273, Leather, 50 }, + { 13273, Cokes, 50 }, + { 13273, Coarse_Bone_Powder, 50 }, + { 13273, Stone_of_Purity, 50 }, + { 13273, Stormbringer_Blade, 50 }, + { 13273, Stick_of_Faith_Shaft, 50 }, + { 13273, Sealed_Blue_Wolf_Glove_Fabric, 50 }, + { 13273, Sealed_Blue_Wolf_Boot_Design, 50 }, + { 13273, Sealed_Avadon_Glove_Fragment, 50 }, + { 13273, Sealed_Avadon_Boot_Design, 50 }, + { 13273, Orcish_Glaive_Blade, 50 }, + { 13273, Flamberge_Blade, 50 }, + { 13273, Crystallized_Ice_Bow_Shaft, 50 }, + { 13273, Crystal_Staff_Head, 50 }, + { 13273, Blue_Wolf_Gaiter_Material, 50 }, + { 13273, Battle_Axe_Head, 50 }, + { 13273, Recipe_Battle_Axe, 50 }, + { 13273, Recipe_Blue_Wolf_Gaiters, 50 }, + { 13273, Recipe_Crystal_Staff, 50 }, + { 13273, Recipe_Crystallized_Ice_Bow, 50 }, + { 13273, Recipe_Divine_Gloves, 50 }, + { 13273, Recipe_Divine_Stockings, 50 }, + { 13273, Recipe_Flamberge, 50 }, + { 13273, Recipe_Full_Plate_Helmet, 50 }, + { 13273, Recipe_Full_Plate_Shield, 50 }, + { 13273, Recipe_Orcish_Glaive, 50 }, + { 13273, Recipe_Sealed_Avadon_Boots, 50 }, + { 13273, Recipe_Sealed_Avadon_Gloves, 50 }, + { 13273, Recipe_Sealed_Blue_Wolf_Boots, 50 }, + { 13273, Recipe_Sealed_Blue_Wolf_Gloves, 50 }, + { 13273, Recipe_Stick_of_Faith, 50 }, + { 13273, Recipe_Stormbringer, 50 }, + + // Defective Watermelon + { 13272, Class_Buff_Scroll_1st, 70 }, + { 13272, Angel_Cat_Blessing_Chest, 60 }, + { 13272, Major_Healing_Potion, 70 }, + { 13272, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13272, XP_SP_Scroll_Normal, 50 }, + { 13272, Coal, 50 }, + { 13272, Animal_Bone, 50 }, + { 13272, Varnish, 50 }, + { 13272, Recipe_Atuba_Hammer, 50 }, + { 13272, Recipe_Gastraphetes, 50 }, + { 13272, Recipe_Maingauche, 50 }, + { 13272, Recipe_Staff_of_Life, 50 }, + { 13272, Recipe_Sword_of_Revolution, 50 }, + { 13272, Atuba_Hammer_Head, 50 }, + { 13272, Gastraphetes_Shaft, 50 }, + { 13272, Maingauche_Edge, 50 }, + { 13272, Staff_of_Life_Shaft, 50 }, + { 13272, Sword_of_Revolution_Blade, 50 }, + + // Large rain Watermelon + { 13274, Battle_Axe, 5 }, + { 13274, Crystal_Staff, 5 }, + { 13274, Crystallized_Ice_Bow, 5 }, + { 13274, Flamberge, 5 }, + { 13274, Orcish_Glaive, 5 }, + { 13274, Stick_of_Faith, 5 }, + { 13274, Stormbringer, 5 }, + { 13274, Divine_Gloves, 5 }, + { 13274, Divine_Stockings, 5 }, + { 13274, Divine_Tunic, 5 }, + { 13274, Drake_Leather_Armor, 5 }, + { 13274, Drake_Leather_Boots, 5 }, + { 13274, Full_Plate_Armor, 5 }, + { 13274, Full_Plate_Helmet, 5 }, + { 13274, Full_Plate_Shield, 5 }, + { 13274, Class_Buff_Scroll_2nd , 50 }, + { 13274, Angel_Cat_Blessing_Chest, 50 }, + { 13274, Blessed_Scroll_of_Escape, 50 }, + { 13274, Blessed_Scroll_of_Resurrection, 50 }, + { 13274, Greater_CP_Potion, 50 }, + { 13274, Quick_Healing_Potion, 50 }, + { 13274, Rice_Cake_of_Flaming_Fighting_Spirit, 50 }, + { 13274, Special_Pirate_Fruit, 50 }, + { 13274, XP_SP_Scroll_High, 50 }, + { 13274, XP_SP_Scroll_Medium, 50 }, + { 13274, Crystal_C, 50 }, + { 13274, Scroll_Enchant_Armor_C, 50 }, + { 13274, Scroll_Enchant_Weapon_C, 50 }, + { 13274, Scroll_Dance_of_Fire, 70 }, + { 13274, Scroll_Hunter_Song, 70 }, + { 13274, Mithril_Alloy, 50 }, + { 13274, Mold_Hardener, 50 }, + { 13274, Oriharukon, 50 }, + { 13274, Silver_Mold, 50 }, + + // Defective Honey Watermelon + { 13276, Atuba_Hammer, 20 }, + { 13276, Gastraphetes, 20 }, + { 13276, Maingauche, 20 }, + { 13276, Staff_of_Life, 20 }, + { 13276, Sword_of_Revolution, 20 }, + { 13276, War_Pick, 20 }, + { 13276, Class_Buff_Scroll_1st, 50 }, + { 13276, Class_Buff_Scroll_2nd , 50 }, + { 13276, Angel_Cat_Blessing_Chest, 50 }, + { 13276, Greater_CP_Potion, 50 }, + { 13276, Rice_Cake_of_Fighting_Spirit, 50 }, + { 13276, Special_Pirate_Fruit, 50 }, + { 13276, XP_SP_Scroll_High, 50 }, + { 13276, XP_SP_Scroll_Medium, 50 }, + { 13276, Crystal_D, 50 }, + { 13276, Scroll_Enchant_Armor_D, 50 }, + { 13276, Scroll_Enchant_Weapon_D, 50 }, + { 13276, Scroll_Acumen, 70 }, + { 13276, Scroll_Berserker_Spirit, 70 }, + { 13276, Scroll_Blessed_Body, 70 }, + { 13276, Scroll_Death_Whisper, 70 }, + { 13276, Scroll_Guidance, 70 }, + { 13276, Scroll_Haste, 70 }, + { 13276, Scroll_Magic_Barrier, 70 }, + { 13276, Scroll_Mana_Regeneration, 70 }, + { 13276, Scroll_Regeneration, 70 }, + { 13276, Enria, 50 }, + { 13276, Mithril_Alloy, 50 }, + { 13276, Mold_Hardener, 50 }, + { 13276, Mold_Lubricant, 50 }, + { 13276, Silver_Mold, 50 }, + { 13276, Varnish_of_Purity, 50 }, + + // Rain Honey Watermelon + { 13277, Class_Buff_Scroll_1st, 70 }, + { 13277, Angel_Cat_Blessing_Chest, 60 }, + { 13277, Greater_CP_Potion, 60 }, + { 13277, Quick_Healing_Potion, 60 }, + { 13277, Rice_Cake_of_Fighting_Spirit, 60 }, + { 13277, Adamantite_Nugget, 50 }, + { 13277, Asofe, 50 }, + { 13277, Coarse_Bone_Powder, 50 }, + { 13277, Cokes, 50 }, + { 13277, High_grade_Suede, 50 }, + { 13277, Mithril_Ore, 50 }, + { 13277, Mold_Glue, 50 }, + { 13277, Oriharukon_Ore, 50 }, + { 13277, Steel, 50 }, + { 13277, Steel_Mold, 50 }, + { 13277, Stone_of_Purity, 50 }, + { 13277, Synthetic_Braid, 50 }, + { 13277, Synthetic_Cokes, 50 }, + { 13277, Varnish_of_Purity, 50 }, + { 13277, Avadon_Robe_Fabric, 50 }, + { 13277, Berserker_Blade_Edge, 50 }, + { 13277, Blue_Wolf_Breastplate_Part, 50 }, + { 13277, Dark_Screamer_Edge, 50 }, + { 13277, Divine_Tunic_Fabric, 50 }, + { 13277, Eminence_Bow_Shaft, 50 }, + { 13277, Fisted_Blade_Piece, 50 }, + { 13277, Full_Plate_Armor_Temper, 50 }, + { 13277, Poleaxe_Blade, 50 }, + { 13277, Sage_Staff_Head, 50 }, + { 13277, Sealed_Avadon_Circlet_Pattern, 50 }, + { 13277, Sealed_Blue_Wolf_Helmet_Design, 50 }, + { 13277, Sealed_Doom_Helmet_Design, 50 }, + { 13277, Sword_of_Nightmare_Blade, 50 }, + { 13277, Recipe_Avadon_Robe, 50 }, + { 13277, Recipe_Berserker_Blade, 50 }, + { 13277, Recipe_Blue_Wolf_Breastplate, 50 }, + { 13277, Recipe_Dark_Screamer, 50 }, + { 13277, Recipe_Divine_Tunic, 50 }, + { 13277, Recipe_Eminence_Bow, 50 }, + { 13277, Recipe_Fisted_Blade, 50 }, + { 13277, Recipe_Full_Plate_Armor, 50 }, + { 13277, Recipe_Homunkulus_Sword, 50 }, + { 13277, Recipe_Leather_Armor_of_Doom, 50 }, + { 13277, Recipe_Poleaxe, 50 }, + { 13277, Recipe_Sage_Staff, 50 }, + { 13277, Recipe_Sealed_Avadon_Circlet, 50 }, + { 13277, Recipe_Sealed_Blue_Wolf_Helmet, 50 }, + { 13277, Recipe_Sealed_Doom_Helmet, 50 }, + { 13277, Recipe_Sword_of_Nightmare, 50 }, + + // Large Rain Honey Watermelon + { 13278, Berserker_Blade, 5 }, + { 13278, Dark_Screamer, 5 }, + { 13278, Eminence_Bow, 5 }, + { 13278, Fisted_Blade, 5 }, + { 13278, Homunkulus_Sword, 5 }, + { 13278, Poleaxe, 5 }, + { 13278, Sage_Staff, 5 }, + { 13278, Sword_of_Nightmare, 5 }, + { 13278, Avadon_Robe, 5 }, + { 13278, Blue_Wolf_Breastplate, 5 }, + { 13278, Blue_Wolf_Gaiters, 5 }, + { 13278, Leather_Armor_of_Doom, 5 }, + { 13278, Sealed_Avadon_Boots, 10 }, + { 13278, Sealed_Avadon_Circlet, 10 }, + { 13278, Sealed_Avadon_Gloves, 10 }, + { 13278, Sealed_Blue_Wolf_Boots, 10 }, + { 13278, Sealed_Blue_Wolf_Gloves, 10 }, + { 13278, Sealed_Blue_Wolf_Helmet, 10 }, + { 13278, Sealed_Doom_Boots, 10 }, + { 13278, Sealed_Doom_Gloves, 10 }, + { 13278, Sealed_Doom_Helmet, 10 }, + { 13278, Class_Buff_Scroll_2nd , 50 }, + { 13278, Angel_Cat_Blessing_Chest, 50 }, + { 13278, Blessed_Scroll_of_Escape, 50 }, + { 13278, Blessed_Scroll_of_Resurrection, 50 }, + { 13278, Blessed_Scroll_Enchant_Armor_C, 30 }, + { 13278, Blessed_Scroll_Enchant_Armor_D, 30 }, + { 13278, Blessed_Scroll_Enchant_Weapon_C, 20 }, + { 13278, Blessed_Scroll_Enchant_Weapon_D, 20 }, + { 13278, Crystal_B, 50 }, + { 13278, Crystal_C, 50 }, + { 13278, Greater_CP_Potion, 50 }, + { 13278, Major_Healing_Potion, 50 }, + { 13278, Quick_Healing_Potion, 70 }, + { 13278, Rice_Cake_of_Flaming_Fighting_Spirit, 60 }, + { 13278, Scroll_Dance_of_Fire, 60 }, + { 13278, Scroll_Hunter_Song, 60 }, + { 13278, Scroll_Enchant_Armor_C, 50 }, + { 13278, Scroll_Enchant_Weapon_C, 40 }, + { 13278, Special_Pirate_Fruit, 60 }, + { 13278, XP_SP_Scroll_High, 60 }, + { 13278, XP_SP_Scroll_Medium, 60 }, + }; + //@formatter:on + + public WatermelonNinja() + { + addAttackId(SQUASH_LIST); + addKillId(SQUASH_LIST); + addSpawnId(SQUASH_LIST); + addSpawnId(LARGE_SQUASH_LIST); + addSkillSeeId(SQUASH_LIST); + + addStartNpc(MANAGER); + addFirstTalkId(MANAGER); + addTalkId(MANAGER); + } + + @Override + public String onSpawn(L2Npc npc) + { + npc.setIsImmobilized(true); + npc.disableCoreAI(true); + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + npc.setIsInvul(true); + } + return null; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) + { + if (LARGE_SQUASH_LIST.contains(npc.getId())) + { + if ((attacker.getActiveWeaponItem() != null) && CHRONO_LIST.contains(attacker.getActiveWeaponItem().getId())) + { + ChronoText(npc); + npc.setIsInvul(false); + npc.getStatus().reduceHp(10, attacker); + } + else + { + noChronoText(npc); + npc.setIsInvul(true); + } + } + + return super.onAttack(npc, attacker, damage, isPet); + } + + @Override + public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId()) && (skill.getId() == NECTAR_SKILL)) + { + switch (npc.getId()) + { + case 13271: // Watermelon Seed + { + randomSpawn(13274, 13273, 13272, npc, true); + break; + } + case 13275: // Honey Watermelon Seed + { + randomSpawn(13278, 13277, 13276, npc, true); + break; + } + } + } + return super.onSkillSee(npc, caster, skill, targets, isPet); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) + { + if (SQUASH_LIST.contains(npc.getId())) + { + dropItem(npc, killer); + } + return super.onKill(npc, killer, isPet); + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return npc.getId() + ".htm"; + } + + private static final void dropItem(L2Npc mob, L2PcInstance player) + { + final int npcId = mob.getId(); + final int chance = Rnd.get(100); + for (int[] drop : DROPLIST) + { + if (npcId == drop[0]) + { + if (chance < drop[2]) + { + if (drop[1] > 6000) + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + else + { + ((L2MonsterInstance) mob).dropItem(player, drop[1], 1); + } + continue; + } + } + if (npcId < drop[0]) + { + return; + } + } + } + + private void randomSpawn(int low, int medium, int high, L2Npc npc, boolean delete) + { + final int _random = Rnd.get(100); + if (_random < 5) + { + spawnNext(low, npc); + } + if (_random < 10) + { + spawnNext(medium, npc); + } + else if (_random < 30) + { + spawnNext(high, npc); + } + else + { + nectarText(npc); + } + } + + private void ChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)])); + } + } + + private void noChronoText(L2Npc npc) + { + if (Rnd.get(100) < 20) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)])); + } + } + + private void nectarText(L2Npc npc) + { + if (Rnd.get(100) < 30) + { + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)])); + } + } + + private void spawnNext(int npcId, L2Npc npc) + { + addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000); + npc.deleteMe(); + } + + public static void main(String[] args) + { + new WatermelonNinja(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/config.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/config.xml new file mode 100644 index 0000000000..7bea833cea --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/events/WatermelonNinja/config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/15300-15399.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/15300-15399.xml index 1b17f3a595..7a46d66ccd 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/15300-15399.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/15300-15399.xml @@ -191,6 +191,13 @@ + + + + + + +
@@ -198,6 +205,13 @@ + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29500-29599.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29500-29599.xml index 8bc6fc0a30..c32dd29b94 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29500-29599.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29500-29599.xml @@ -139,6 +139,17 @@ + + + + + + + + + + + @@ -151,6 +162,14 @@ + + + + + + + + @@ -163,6 +182,16 @@ + + + + + + + + + + @@ -175,6 +204,16 @@ + + + + + + + + + + @@ -187,6 +226,16 @@ + + + + + + + + + + @@ -199,6 +248,16 @@ + + + + + + + + + + @@ -211,6 +270,13 @@ + + + + + + + @@ -363,6 +429,15 @@ + + + + + + + + + @@ -373,6 +448,15 @@ + + + + + + + + + @@ -1003,7 +1087,7 @@ - + @@ -1018,6 +1102,9 @@ + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29600-29699.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29600-29699.xml index bebaa235ae..d04ef2a9cb 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29600-29699.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29600-29699.xml @@ -25,6 +25,17 @@ + + + + + + + + + + + @@ -37,6 +48,14 @@ + + + + + + + + @@ -49,6 +68,16 @@ + + + + + + + + + + @@ -61,6 +90,16 @@ + + + + + + + + + + @@ -73,6 +112,16 @@ + + + + + + + + + + @@ -85,6 +134,16 @@ + + + + + + + + + + @@ -97,6 +156,13 @@ + + + + + + + @@ -753,6 +819,17 @@ + + + + + + + + + + + @@ -765,6 +842,14 @@ + + + + + + + + @@ -777,6 +862,16 @@ + + + + + + + + + + @@ -789,6 +884,16 @@ + + + + + + + + + + @@ -801,6 +906,16 @@ + + + + + + + + + + @@ -813,6 +928,16 @@ + + + + + + + + + + @@ -825,6 +950,13 @@ + + + + + + + @@ -934,6 +1066,7 @@ + @@ -955,6 +1088,7 @@ + @@ -976,6 +1110,7 @@ + @@ -1033,7 +1168,10 @@ - + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29700-29799.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29700-29799.xml index 6d162c0d11..5f46b4cea1 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29700-29799.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29700-29799.xml @@ -19,6 +19,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29800-29899.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29800-29899.xml index 6348297ba1..ba04ee504d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29800-29899.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/29800-29899.xml @@ -265,6 +265,12 @@ + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/37500-37599.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/37500-37599.xml index 508e5ed474..e46ab9d998 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/37500-37599.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/37500-37599.xml @@ -44,6 +44,13 @@ + + + + + + + @@ -120,6 +127,13 @@ + + + + + + + @@ -127,5 +141,12 @@ + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49000-49099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49000-49099.xml index 95341a68c6..a0d5a026d7 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49000-49099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49000-49099.xml @@ -4,7 +4,7 @@ - + @@ -13,6 +13,14 @@ + + + + + + + + @@ -25,12 +33,16 @@ + + + + - + @@ -39,6 +51,14 @@ + + + + + + + + @@ -51,6 +71,10 @@ + + + + @@ -255,8 +279,8 @@ - - + + @@ -276,8 +300,8 @@ - - + + @@ -297,8 +321,8 @@ - - + + @@ -318,8 +342,8 @@ - - + + @@ -339,8 +363,8 @@ - - + + @@ -384,6 +408,9 @@ + + + @@ -1074,6 +1101,11 @@ + + + + + @@ -1081,6 +1113,11 @@ + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49100-49199.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49100-49199.xml index c265363b97..1ba5d7d5d5 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49100-49199.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49100-49199.xml @@ -100,6 +100,11 @@ + + + + + @@ -107,6 +112,11 @@ + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49500-49599.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49500-49599.xml index 89bf2e1bc2..25d7b281ac 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49500-49599.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49500-49599.xml @@ -269,6 +269,12 @@ + + + + + + @@ -333,6 +339,10 @@ + + + + @@ -492,6 +502,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49600-49699.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49600-49699.xml index 96a49d4bdb..aae6b74ae9 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49600-49699.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49600-49699.xml @@ -24,6 +24,10 @@ + + + + @@ -31,6 +35,10 @@ + + + + @@ -38,6 +46,10 @@ + + + + @@ -45,6 +57,10 @@ + + + + @@ -52,6 +68,10 @@ + + + + @@ -59,6 +79,10 @@ + + + + @@ -383,6 +407,12 @@ + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49700-49799.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49700-49799.xml index 783b08dcfa..026b8012c7 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49700-49799.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49700-49799.xml @@ -886,6 +886,10 @@ + + + + @@ -990,6 +994,12 @@ + + + + + + @@ -1001,6 +1011,12 @@ + + + + + + @@ -1110,6 +1126,10 @@ + + + + @@ -1117,6 +1137,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49800-49899.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49800-49899.xml index 6a04bfdbbe..648d911667 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49800-49899.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/49800-49899.xml @@ -556,6 +556,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70200-70299.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70200-70299.xml index 3191f63360..6d10d0f04e 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70200-70299.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70200-70299.xml @@ -426,25 +426,52 @@ - - + + + + + + + + + + + - - + + + + + + + + + + + - - + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70300-70399.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70300-70399.xml index 77f532e0a6..20f342fffd 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70300-70399.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70300-70399.xml @@ -997,6 +997,9 @@ + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70400-70499.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70400-70499.xml index 212e2928f4..91542d1b1d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70400-70499.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/items/70400-70499.xml @@ -307,6 +307,10 @@ + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/02000-02099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/02000-02099.xml index fcd295a116..b160573cea 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/02000-02099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/02000-02099.xml @@ -107,9 +107,19 @@ NONE;STRIDER;WYVERN;WOLF 5 0 - OTHERS SINGLE + + + + + 12774 + 12777 + 13271 + 13275 + + + 2 diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/06100-06199.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/06100-06199.xml index 1918c84403..148230f512 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/06100-06199.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/06100-06199.xml @@ -1145,9 +1145,59 @@ SINGLE - - icon.skill0000 - A1 + icon.skill55314 + A2 + 1 + 3600 + G_EV_BUFF1 + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + -2 + -2 + 1 + SELF + SINGLE + true + + + 15 + PER + + + 15 + PER + + + 30 + PER + + + 33 + PER + + + 30 + PER + + + 75 + PER + + + 33 + DIFF + + + 35 + PER + + + 9 + 80 + + 1 diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/17100-17199.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/17100-17199.xml index ec26a650c6..395f874430 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/17100-17199.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/17100-17199.xml @@ -24,26 +24,80 @@ A1 - icon.skill0000 A1 200 -150 2000 + 300 + 2 + 1 + 37543 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + OTHERS + SINGLE + + + + + 13399 + 13403 + + + - - icon.skill0000 + icon.skill17111 A1 1500 10000 + 2 + 1 + 37552 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 1.5 + SELF + SINGLE + + + + + + 13399 + 1 + 180000 + + - - icon.skill0000 + icon.skill17112 A1 1500 10000 + 2 + 1 + 37553 + 1 + NONE;STRIDER;WYVERN;WOLF + 5 + 1.5 + SELF + SINGLE + + + + + + 13403 + 1 + 180000 + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/32000-32099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/32000-32099.xml index 6a29e7d93e..3d363c555d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/32000-32099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/32000-32099.xml @@ -1,19 +1,91 @@  - - icon.skill0000 - A1 + icon.skill32000 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 20 + PER + + + 20 + PER + + - - icon.skill0000 - A1 + icon.skill32001 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 20 + PER + + + 20 + PER + + - - icon.skill0000 - A1 + icon.skill32002 + 1 + 1200 + VOTE + A2 + 5 + 1 + true + SELF + SINGLE + + + 1 + 85 + CASTER + + + + + 30 + PER + + + 30 + PER + + @@ -51,14 +123,126 @@ A1 - - icon.skill0000 + icon.skill32012 + 2 + 1 + 49110 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill32013 + 2 + 1 + 49111 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/35000-35099.xml index 26b46985ce..deb1d16b28 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/35000-35099.xml @@ -794,16 +794,16 @@ 1 -1 - - -3 + + 3 PER - - -3 + + 3 PER - - -3 + + 3 PER diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39000-39099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39000-39099.xml index df4623d095..f3ec2676e6 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39000-39099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39000-39099.xml @@ -349,9 +349,23 @@ - - icon.skill0000 + icon.skill39025 + 20000 + 2 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + SELF + SINGLE + + + + + + TOWN + + @@ -712,14 +726,180 @@ A1 - - icon.skill0000 + icon.skil39058 + 2 + 1 + 29578 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skil39059 + 2 + 1 + 49541 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -969,9 +1149,75 @@ A1 - - icon.skill0000 - A1 + icon.skill39085 + 1 + 1200 + VOTE + 1 + 29817 + 2 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39100-39199.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39100-39199.xml index 26a2a9402f..b9329a5fad 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39100-39199.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39100-39199.xml @@ -144,34 +144,394 @@ A1 - - icon.skill0000 + icon.skill39124 + 2 + 1 + 49667 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39125 + 2 + 1 + 49664 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39126 + 2 + 1 + 49668 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39127 + 2 + 1 + 49665 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39126 + 2 + 1 + 49669 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39127 + 2 + 1 + 49666 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -244,9 +604,75 @@ A1 - - icon.skill0000 - A1 + icon.skill39144 + 1 + 1200 + VOTE + 2 + 1 + 49518 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + @@ -398,9 +824,47 @@ A1 - - icon.skill0000 + icon.skill39152 + 2 + 1 + 49761 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -448,14 +912,154 @@ A1 - - icon.skill0000 - A1 + icon.skill39162 + 1 + 1200 + VOTE + 2 + 1 + 49773 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + + 5 + PER + + - - icon.skill0000 - A1 + icon.skill39163 + 1 + 1200 + VOTE + 2 + 1 + 49774 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + + 5 + PER + + @@ -498,14 +1102,207 @@ A1 - - icon.skill0000 + icon.skill39172 + 2 + 1 + 49785 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - icon.skill0000 + icon.skill39173 + 2 + 1 + 49786 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39200-39299.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39200-39299.xml index 991d981efa..0489d5744e 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39200-39299.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/39200-39299.xml @@ -172,15 +172,15 @@ icon.skill39224 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 300 + STRAWBERRY_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE true @@ -215,15 +215,15 @@ icon.skill39225 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 300 + MONGO_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE @@ -253,15 +253,15 @@ icon.skill39226 A2 1 - 3600 - BUFF_SPECIAL_MULTI + 600 + CHERRY_FRUIT 1 NONE NONE;STRIDER;WYVERN;WOLF 5 - -2 - -2 - 1 + 1 + 2 + 0 SELF SINGLE diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55000-55099.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55000-55099.xml index e8e5ee14b0..2f581d2a87 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55000-55099.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55000-55099.xml @@ -585,9 +585,38 @@ - - icon.skill0000 + icon.skil55043 + 2 + 1 + 29701 + 1 A1 + NONE;STRIDER;WYVERN;WOLF + 5 + 0 + SELF + SINGLE + + + 20 + 10 + + + + + + + + + + + + + + + + + icon.skill55044 @@ -1808,7 +1837,7 @@ icon.skil55089 2 1 - 29578 + 49525 1 A1 NONE;STRIDER;WYVERN;WOLF @@ -1826,13 +1855,13 @@ - + - + - + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55100-55199.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55100-55199.xml index 4da908d0e1..7280e792f2 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55100-55199.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55100-55199.xml @@ -318,9 +318,75 @@ A1 - - icon.skill0000 - A1 + icon.skill55160 + 1 + 1200 + VOTE + 1 + 49697 + 2 + 1 + A2 + NONE;STRIDER;WYVERN;WOLF + NONE + 5 + SELF + SINGLE + true + + + 7 + PER + + + 7 + PER + + + 10 + PER + + + 10 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 15 + PER + + + 20 + PER + + + 20 + PER + + + 49 + 3 + + + 5 + PER + + + 5 + PER + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55300-55399.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55300-55399.xml index 1645222571..e64189e46f 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55300-55399.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/stats/skills/55300-55399.xml @@ -225,19 +225,127 @@ A1 - - icon.skill0000 - A1 + icon.skill55329 + A2 + 1 + 300 + STRAWBERRY_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + true + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 5 + PER + + + -10 + DEBUFF + + - - icon.skill0000 - A1 + icon.skill55330 + A2 + 1 + 300 + MONGO_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + + + 10 + PER + + + 10 + PER + + + 10 + PER + + + 5 + PER + + + -10 + DEBUFF + + - - icon.skill0000 - A1 + icon.skill55331 + A2 + 1 + 300 + CHERRY_FRUIT + 1 + NONE + NONE;STRIDER;WYVERN;WOLF + 5 + 1 + 2 + 0 + SELF + SINGLE + + + 3 + DIFF + + + 3 + DIFF + + + 10 + PER + + + 15 + PER + + + 10 + PER + + + -10 + DEBUFF + +