From c7b464b91f71946f35e0cc684169eca685172dd7 Mon Sep 17 00:00:00 2001 From: Atemo Date: Wed, 12 Apr 2023 20:20:23 +0200 Subject: [PATCH] Initial release of Illusion of underwater (#7521) Implemented the main quest, daily quests and exchange npcs related to illusion of underwater. Walkthrough Conversion. Closed #6472 Thanks to @secretdataz @OptimusM ! Co-authored-by: aleos --- db/re/mob_db.yml | 580 ++++++- db/re/mob_skill_db.txt | 142 ++ db/re/quest_db.yml | 46 + npc/re/merchants/barters.yml | 1 + .../barters/enchan_illusion_16_2.yml | 231 +++ npc/re/merchants/enchan_illusion_16_2.txt | 30 + npc/re/mobs/dungeons/iz_dun.txt | 76 + npc/re/quests/quests_16_2_illusion.txt | 1369 +++++++++++++++++ 8 files changed, 2451 insertions(+), 24 deletions(-) create mode 100644 npc/re/merchants/barters/enchan_illusion_16_2.yml diff --git a/db/re/mob_db.yml b/db/re/mob_db.yml index c8e4f34084..b4d5111049 100644 --- a/db/re/mob_db.yml +++ b/db/re/mob_db.yml @@ -97392,28 +97392,514 @@ Body: # AegisName: MD_THA_DOLOR # - Id: 20800 # AegisName: MD_OBSERVATION -# - Id: 20801 -# AegisName: ILL_SROPHO -# - Id: 20802 -# AegisName: ILL_OBEAUNE -# - Id: 20803 -# AegisName: ILL_DEVIACE -# - Id: 20804 -# AegisName: ILL_MARSE -# - Id: 20805 -# AegisName: ILL_MERMAN -# - Id: 20806 -# AegisName: ILL_SEDORA -# - Id: 20807 -# AegisName: ILL_SWORD_FISH -# - Id: 20808 -# AegisName: ILL_STROUF -# - Id: 20809 -# AegisName: ILL_PHEN -# - Id: 20810 -# AegisName: ILL_KING_DRAMOH -# - Id: 20811 -# AegisName: ILL_KRAKEN + - Id: 20801 + AegisName: ILL_SROPHO + Name: Deep Sea Sropho + Level: 147 + Hp: 336823 + BaseExp: 30314 + JobExp: 21220 + Attack: 2657 + Attack2: 340 + Defense: 224 + MagicDefense: 81 + Str: 145 + Agi: 50 + Vit: 95 + Int: 80 + Dex: 110 + Luk: 50 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Fish + Element: Water + ElementLevel: 3 + WalkSpeed: 250 + AttackDelay: 550 + AttackMotion: 1056 + DamageMotion: 576 + Ai: 04 + Drops: + - Item: Fin + Rate: 2500 + - Item: Blue_Herb + Rate: 50 + - Item: Crystal_Arrow_Container + Rate: 50 + - Item: E_Abyss1 + Rate: 250 + - Item: Electric_Eel + Rate: 25 + - Item: Deepsea_Fish_Tail + Rate: 1000 + - Item: ILL_Sropho_Card + Rate: 1 + StealProtected: true + - Id: 20802 + AegisName: ILL_OBEAUNE + Name: Deep Sea Obeaune + Level: 149 + Hp: 340238 + BaseExp: 30621 + JobExp: 21434 + Attack: 2647 + Attack2: 384 + Defense: 255 + MagicDefense: 90 + Str: 134 + Agi: 50 + Vit: 114 + Int: 77 + Dex: 114 + Luk: 50 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Fish + Element: Water + ElementLevel: 2 + WalkSpeed: 200 + AttackDelay: 936 + AttackMotion: 1155 + DamageMotion: 672 + Ai: 04 + Drops: + - Item: Heart_Of_Mermaid + Rate: 2500 + - Item: Fin + Rate: 150 + - Item: Skyblue_Jewel + Rate: 5 + - Item: Saint_Robe + Rate: 10 + - Item: E_Abyss1 + Rate: 250 + - Item: Rotten_Deepseafish + Rate: 1000 + - Item: ILL_Obeaune_Card + Rate: 1 + StealProtected: true + - Id: 20803 + AegisName: ILL_DEVIACE + Name: Deep Sea Deviace + Level: 150 + Hp: 348355 + BaseExp: 31352 + JobExp: 21946 + Attack: 2714 + Attack2: 401 + Defense: 274 + MagicDefense: 91 + Str: 151 + Agi: 58 + Vit: 121 + Int: 80 + Dex: 120 + Luk: 58 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Fish + Element: Water + ElementLevel: 4 + WalkSpeed: 400 + AttackDelay: 480 + AttackMotion: 970 + DamageMotion: 770 + Ai: 04 + Drops: + - Item: Mistic_Frozen + Rate: 10 + - Item: Tooth_Of_Ancient_Fish + Rate: 2500 + - Item: Lip_Of_Ancient_Fish + Rate: 300 + - Item: Katar_Of_Cold_Icicle + Rate: 5 + - Item: Abysmal_Clam + Rate: 1000 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Deviace_Card + Rate: 1 + StealProtected: true + - Id: 20804 + AegisName: ILL_MARSE + Name: Deep Sea Marse + Level: 149 + Hp: 335141 + BaseExp: 30163 + JobExp: 21114 + Attack: 2851 + Attack2: 417 + Defense: 288 + MagicDefense: 100 + Str: 159 + Agi: 60 + Vit: 135 + Int: 90 + Dex: 120 + Luk: 60 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Small + Race: Fish + Element: Water + ElementLevel: 2 + WalkSpeed: 270 + AttackDelay: 1070 + AttackMotion: 1512 + DamageMotion: 485 + Ai: 04 + Drops: + - Item: Chinese_Ink + Rate: 2500 + - Item: Tentacle + Rate: 1000 + - Item: Water_Sprits_Armor + Rate: 10 + - Item: Skyblue_Jewel + Rate: 5 + - Item: Mistic_Frozen + Rate: 6 + - Item: Deep_Sea_Starfish + Rate: 1000 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Marse_Card + Rate: 1 + StealProtected: true + - Id: 20805 + AegisName: ILL_MERMAN + Name: Deep Sea Merman + Level: 148 + Hp: 337534 + BaseExp: 30378 + JobExp: 21265 + Attack: 2801 + Attack2: 401 + Defense: 268 + MagicDefense: 75 + Str: 159 + Agi: 60 + Vit: 134 + Int: 74 + Dex: 110 + Luk: 48 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Demihuman + Element: Water + ElementLevel: 3 + WalkSpeed: 220 + AttackDelay: 708 + AttackMotion: 1225 + DamageMotion: 675 + Ai: 04 + Drops: + - Item: Lip_Of_Ancient_Fish + Rate: 1000 + - Item: Mistic_Frozen + Rate: 100 + - Item: Yggdrasilberry + Rate: 80 + - Item: Deep_Sea_Crab + Rate: 1000 + - Item: Zephyrus + Rate: 5 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Merman_Card + Rate: 1 + StealProtected: true + - Id: 20806 + AegisName: ILL_SEDORA + Name: Deep Sea Sedora + Level: 199 + Hp: 2875143 + BaseExp: 191676 + JobExp: 134173 + Attack: 6574 + Attack2: 796 + Defense: 274 + MagicDefense: 100 + Str: 232 + Agi: 147 + Vit: 78 + Int: 147 + Dex: 140 + Luk: 60 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Fish + Element: Wind + ElementLevel: 3 + WalkSpeed: 220 + AttackDelay: 168 + AttackMotion: 965 + DamageMotion: 578 + Ai: 04 + Drops: + - Item: Tentacle + Rate: 2000 + - Item: Chinese_Ink + Rate: 1000 + - Item: Old_Blue_Box + Rate: 5 + - Item: Crystal_Blue + Rate: 20 + - Item: Abysmal_Clam + Rate: 2500 + - Item: Electronic_Guitar + Rate: 5 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Sedora_Card + Rate: 1 + StealProtected: true + - Id: 20807 + AegisName: ILL_SWORD_FISH + Name: Deep Sea Swordfish + Level: 199 + Hp: 2997411 + BaseExp: 199827 + JobExp: 139879 + Attack: 6678 + Attack2: 824 + Defense: 288 + MagicDefense: 71 + Str: 248 + Agi: 160 + Vit: 99 + Int: 120 + Dex: 160 + Luk: 60 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Fish + Element: Water + ElementLevel: 3 + WalkSpeed: 250 + AttackDelay: 335 + AttackMotion: 1250 + DamageMotion: 384 + Ai: 04 + Drops: + - Item: Sharp_Scale + Rate: 2000 + - Item: Gill + Rate: 300 + - Item: Deepsea_Fish_Tail + Rate: 2500 + - Item: Mistic_Frozen + Rate: 50 + - Item: Morrigane's_Pendant + Rate: 10 + - Item: Elunium_Stone + Rate: 25 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Sword_Fish_Card + Rate: 1 + StealProtected: true + - Id: 20808 + AegisName: ILL_STROUF + Name: Deep Sea Strouf + Level: 201 + Hp: 2967419 + BaseExp: 197828 + JobExp: 138480 + Attack: 5947 + Attack2: 811 + Defense: 277 + MagicDefense: 80 + Str: 224 + Agi: 160 + Vit: 99 + Int: 125 + Dex: 161 + Luk: 64 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Fish + Element: Water + ElementLevel: 3 + WalkSpeed: 180 + AttackDelay: 276 + AttackMotion: 672 + DamageMotion: 384 + Ai: 04 + Drops: + - Item: Fin + Rate: 2000 + - Item: Skyblue_Jewel + Rate: 10 + - Item: Oridecon_Stone + Rate: 10 + - Item: Mistic_Frozen + Rate: 20 + - Item: Deep_Sea_Starfish + Rate: 2500 + - Item: Brionac + Rate: 50 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Strouf_Card + Rate: 1 + StealProtected: true + - Id: 20809 + AegisName: ILL_PHEN + Name: Deep Sea Phen + Level: 199 + Hp: 2897158 + BaseExp: 193144 + JobExp: 135201 + Attack: 5844 + Attack2: 813 + Defense: 219 + MagicDefense: 90 + Str: 208 + Agi: 157 + Vit: 66 + Int: 115 + Dex: 144 + Luk: 71 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Medium + Race: Fish + Element: Water + ElementLevel: 2 + WalkSpeed: 220 + AttackDelay: 168 + AttackMotion: 1154 + DamageMotion: 865 + Ai: 04 + Drops: + - Item: Sharp_Scale + Rate: 2000 + - Item: Fin + Rate: 1000 + - Item: Meat + Rate: 300 + - Item: Mistic_Frozen + Rate: 50 + - Item: Rotten_Deepseafish + Rate: 2500 + - Item: Morrigane's_Helm + Rate: 10 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_Phen_Card + Rate: 1 + StealProtected: true + - Id: 20810 + AegisName: ILL_KING_DRAMOH + Name: Deep Sea King Dramoh + Level: 205 + Hp: 3115698 + BaseExp: 207713 + JobExp: 145399 + Attack: 6081 + Attack2: 849 + Defense: 330 + MagicDefense: 40 + Str: 194 + Agi: 151 + Vit: 150 + Int: 100 + Dex: 142 + Luk: 80 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Fish + Element: Water + ElementLevel: 3 + WalkSpeed: 180 + AttackDelay: 480 + AttackMotion: 960 + DamageMotion: 970 + Ai: 04 + Drops: + - Item: Nipper + Rate: 1500 + - Item: Solid_Shell + Rate: 1500 + - Item: Deep_Sea_Crab + Rate: 2500 + - Item: Morrigane's_Belt + Rate: 50 + - Item: Death_Guidance + Rate: 50 + - Item: E_Abyss1 + Rate: 250 + - Item: ILL_King_Dramoh_Card + Rate: 1 + StealProtected: true + - Id: 20811 + AegisName: ILL_KRAKEN + Name: Deep Sea Kraken + Level: 204 + Hp: 81289587 + BaseExp: 5865974 + JobExp: 4178562 + Attack: 10874 + Attack2: 1889 + Defense: 335 + MagicDefense: 271 + Str: 325 + Agi: 190 + Vit: 169 + Int: 277 + Dex: 200 + Luk: 55 + AttackRange: 3 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Fish + Element: Water + ElementLevel: 4 + WalkSpeed: 180 + AttackDelay: 422 + AttackMotion: 870 + DamageMotion: 480 + Ai: 21 + Class: Boss + Modes: + Mvp: true + Drops: + - Item: Tentacle + Rate: 3000 + - Item: Mistic_Frozen + Rate: 500 + - Item: Shadowdecon + Rate: 50 + - Item: IL_Kraken_Leg + Rate: 3000 + - Item: Morrigane's_Manteau + Rate: 300 + - Item: E_Abyss1 + Rate: 1000 + - Item: ILL_Kraken_Card + Rate: 1 + StealProtected: true # - Id: 20812 # AegisName: MD_EVENT_HEMEL # - Id: 20813 @@ -97568,8 +98054,54 @@ Body: # AegisName: ELEMETAL_MASTER_S4 # - Id: 20842 # AegisName: ELEMETAL_MASTER_S5 -# - Id: 20843 -# AegisName: ILL_ABYSMAL_WITCH + - Id: 20843 + AegisName: ILL_ABYSMAL_WITCH + Name: Deep Sea Witch + Level: 205 + Hp: 78368745 + BaseExp: 5896412 + JobExp: 4143664 + Attack: 11016 + Attack2: 1853 + Defense: 452 + MagicDefense: 81 + Str: 327 + Agi: 194 + Vit: 173 + Int: 325 + Dex: 201 + Luk: 55 + AttackRange: 3 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Demon + Element: Dark + ElementLevel: 3 + WalkSpeed: 210 + AttackDelay: 360 + AttackMotion: 1250 + DamageMotion: 480 + Ai: 21 + Class: Boss + Modes: + Mvp: true + Drops: + - Item: Crown_Of_Witch + Rate: 3000 + - Item: Mistic_Frozen + Rate: 300 + - Item: Morrigane's_Pendant + Rate: 50 + - Item: Morrigane's_Belt + Rate: 50 + - Item: Shadowdecon + Rate: 50 + - Item: E_Abyss1 + Rate: 1000 + - Item: ILL_Abysmal_Witch_Card + Rate: 1 + StealProtected: true # - Id: 20844 # AegisName: PRAY_GIVER # - Id: 20845 diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt index 67eafcc05e..03b9f80bf6 100644 --- a/db/re/mob_skill_db.txt +++ b/db/re/mob_skill_db.txt @@ -13416,6 +13416,148 @@ 20419,MUSPELLSKOLL_H@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,2,1834,1835,,,,, 20419,MUSPELLSKOLL_H@AL_TELEPORT,walk,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,, +// Illusion of Underwater +20801,ILL_SROPHO@NPC_WINDATTACK,attack,187,5,2000,0,5000,no,target,always,0,,,,,,29, +20801,ILL_SROPHO@NPC_WINDATTACK,chase,187,5,2000,0,5000,no,target,always,0,,,,,,29, +20801,ILL_SROPHO@NPC_STUNATTACK,attack,179,5,3000,1000,10000,no,target,always,0,,,,,,, +20801,ILL_SROPHO@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20801,ILL_SROPHO@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20801,ILL_SROPHO@WZ_JUPITEL,attack,84,5,2000,0,5000,no,target,always,0,,,,,,, +20801,ILL_SROPHO@WZ_JUPITEL,chase,84,5,2000,0,5000,no,target,always,0,,,,,,, +20801,ILL_SROPHO@NPC_COMBOATTACK,attack,171,3,1000,700,5000,no,target,always,0,,,,,,, +20802,ILL_OBEAUNE@NPC_CURSEATTACK,attack,181,1,500,800,5000,no,target,always,0,,,,,,, +20802,ILL_OBEAUNE@NPC_DARKNESSATTACK,attack,190,5,2000,0,5000,no,target,always,0,,,,,,29, +20802,ILL_OBEAUNE@NPC_DARKNESSATTACK,chase,190,5,2000,0,5000,no,target,always,0,,,,,,29, +20802,ILL_OBEAUNE@NPC_DARKCROSS,attack,338,5,3000,1000,10000,no,target,always,0,,,,,,, +20802,ILL_OBEAUNE@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20802,ILL_OBEAUNE@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20802,ILL_OBEAUNE@NPC_MOVE_COORDINATE,chase,755,1,1000,500,180000,no,target,always,0,,,,,,, +20802,ILL_OBEAUNE@NPC_COMBOATTACK,attack,171,3,1000,700,5000,no,target,always,0,,,,,,, +20803,ILL_DEVIACE@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20803,ILL_DEVIACE@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20803,ILL_DEVIACE@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20803,ILL_DEVIACE@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20803,ILL_DEVIACE@MG_COLDBOLT,attack,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20803,ILL_DEVIACE@MG_COLDBOLT,chase,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20803,ILL_DEVIACE@NPC_COMBOATTACK,attack,171,3,1000,700,5000,no,target,always,0,,,,,,, +20804,ILL_MARSE@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20804,ILL_MARSE@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20804,ILL_MARSE@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20804,ILL_MARSE@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20804,ILL_MARSE@MG_COLDBOLT,attack,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20804,ILL_MARSE@MG_COLDBOLT,chase,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20804,ILL_MARSE@NPC_COMBOATTACK,attack,171,3,1000,700,5000,no,target,always,0,,,,,,, +20805,ILL_MERMAN@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20805,ILL_MERMAN@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20805,ILL_MERMAN@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20805,ILL_MERMAN@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20805,ILL_MERMAN@MG_COLDBOLT,attack,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20805,ILL_MERMAN@MG_COLDBOLT,chase,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20805,ILL_MERMAN@NPC_COMBOATTACK,attack,171,3,1000,700,5000,no,target,always,0,,,,,,, +20806,ILL_SEDORA@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20806,ILL_SEDORA@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20806,ILL_SEDORA@WZ_WATERBALL,chase,86,10,5000,500,25000,no,target,always,0,,,,,,, +20806,ILL_SEDORA@WZ_WATERBALL,attack,86,10,5000,500,25000,no,target,always,0,,,,,,29, +20806,ILL_SEDORA@MG_COLDBOLT,attack,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20806,ILL_SEDORA@MG_COLDBOLT,chase,14,9,1000,1000,5000,no,target,always,0,,,,,,, +20806,ILL_SEDORA@NPC_STORMGUST2,attack,723,3,2500,500,10000,no,target,always,0,,,,,,20, +20807,ILL_SWORD_FISH@NPC_WATERATTACK,attack,184,1,6500,300,5000,yes,target,always,0,,,,,,, +20807,ILL_SWORD_FISH@WZ_WATERBALL,attack,86,3,7000,1500,5000,yes,target,always,0,,,,,,, +20807,ILL_SWORD_FISH@WZ_WATERBALL,chase,86,3,7000,1500,5000,yes,target,always,0,,,,,,, +20807,ILL_SWORD_FISH@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,yes,target,always,0,,,,,,, +20807,ILL_SWORD_FISH@NPC_IGNITIONBREAK,attack,740,2,1000,300,30000,no,self,always,0,,,,,,, +20807,ILL_SWORD_FISH@WZ_WATERBALL,chase,86,3,7000,1500,5000,yes,target,always,0,,,,,,, +20807,ILL_SWORD_FISH@NPC_CRITICALWOUND,attack,673,1,8000,300,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_FROSTDIVER,attack,15,9,1000,1000,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_LIGHTNINGBOLT,attack,20,3,500,1500,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_LIGHTNINGBOLT,chase,20,3,500,1500,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,,,,,32, +20808,ILL_STROUF@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@WZ_WATERBALL,attack,86,3,500,1500,5000,yes,target,always,0,,,,,,6, +20808,ILL_STROUF@NPC_GUIDEDATTACK,attack,172,4,7000,300,30000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_FROSTDIVER,chase,15,9,1000,1000,5000,yes,target,always,0,,,,,,, +20808,ILL_STROUF@MG_LIGHTNINGBOLT,follow,20,3,500,1500,5000,yes,target,always,0,,,,,,, +20809,ILL_PHEN@NPC_WATERATTACK,attack,184,3,500,500,5000,no,target,always,0,,,,,,19, +20809,ILL_PHEN@AL_TELEPORT,idle,26,1,1000,1000,10000,no,self,always,0,,,,,,, +20809,ILL_PHEN@AL_TELEPORT,chase,26,1,1000,1000,10000,no,self,always,0,,,,,,, +20809,ILL_PHEN@AL_TELEPORT,attack,26,1,1000,1000,10000,no,self,always,0,,,,,,, +20809,ILL_PHEN@AL_HEAL,idle,28,9,10000,1000,10000,yes,friend,always,0,,,,,,, +20809,ILL_PHEN@AL_HEAL,chase,28,9,10000,1000,10000,yes,friend,always,0,,,,,,, +20809,ILL_PHEN@AL_HEAL,attack,28,9,10000,1000,10000,yes,friend,always,0,,,,,,, +20810,ILL_KING_DRAMOH@SM_ENDURE,chase,8,1,5000,0,10000,yes,self,longrangeattacked,0,,,,,,6, +20810,ILL_KING_DRAMOH@NPC_DEFENDER,attack,205,1,500,0,5000,yes,self,longrangeattacked,0,,,,,,36, +20810,ILL_KING_DRAMOH@NPC_STOP,attack,342,1,500,0,30000,yes,target,always,0,,,,,,38, +20810,ILL_KING_DRAMOH@NPC_STUNATTACK,attack,179,4,500,1500,5000,no,target,always,0,,,,,,, +20810,ILL_KING_DRAMOH@NPC_WATERATTACK,attack,184,1,6500,300,5000,yes,target,always,0,,,,,,, +20811,ILL_KRAKEN@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDESILENCE,chase,663,1,2000,1000,20000,no,self,always,0,,,,,,32, +20811,ILL_KRAKEN@NPC_WIDESILENCE,attack,663,1,2000,700,25000,yes,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDEFREEZE,chase,664,1,2000,1000,20000,yes,self,always,0,,,,,,36, +20811,ILL_KRAKEN@NPC_WIDEFREEZE,attack,664,1,2000,1000,20000,yes,self,always,0,,,,,,36, +20811,ILL_KRAKEN@NPC_WIDESLEEP,chase,668,1,2000,700,25000,yes,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDESLEEP,attack,668,1,2000,700,25000,yes,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDEBLEEDING,chase,665,1,2000,500,100000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDEBLEEDING,attack,665,1,2000,500,100000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,0,,,,,,42, +20811,ILL_KRAKEN@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,0,,,,,,42, +20811,ILL_KRAKEN@WZ_WATERBALL,attack,86,10,2000,500,25000,no,target,always,0,,,,,,0, +20811,ILL_KRAKEN@WZ_WATERBALL,chase,86,10,2000,500,25000,no,target,always,0,,,,,,0, +20811,ILL_KRAKEN@NPC_DRAGONFEAR,attack,659,5,500,0,30000,yes,self,myhpltmaxrate,70,,,,,,, +20811,ILL_KRAKEN@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,20806,20807,20808,20809,20810,, +20811,ILL_KRAKEN@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,20806,20807,20808,20809,20810,, +20811,ILL_KRAKEN@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDESTUN,chase,678,1,2000,1300,180000,yes,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WIDESTUN,attack,678,1,2000,1300,180000,yes,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_WATERATTACK,attack,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20811,ILL_KRAKEN@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20811,ILL_KRAKEN@NPC_WATERATTACK,chase,184,5,2000,0,5000,no,target,always,0,,,,,,29, +20811,ILL_KRAKEN@MG_FROSTDIVER,attack,15,40,3000,1000,10000,no,target,always,0,,,,,,, +20811,ILL_KRAKEN@MG_FROSTDIVER,chase,15,40,3000,1000,10000,no,target,always,0,,,,,,, +20811,ILL_KRAKEN@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32, +20811,ILL_KRAKEN@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,0,,,,,,, +// 20811,ILL_KRAKEN@NPC_EARTHQUAKE_K,attack,750,5,10000,1500,25000,no,target,myhpltmaxrate,20,,,,,,, +20811,ILL_KRAKEN@NPC_HELLJUDGEMENT2,chase,768,2,3000,500,5000,no,target,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_HELLJUDGEMENT2,attack,768,2,3000,500,5000,no,target,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_CLOUD_KILL,attack,739,5,2000,500,16000,no,target,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_DAMAGE_HEAL,attack,753,1,10000,1000,60000,no,target,myhpltmaxrate,10,,,,,,, +20811,ILL_KRAKEN@NPC_PHANTOMTHRUST,chase,741,5,1000,0,5000,no,self,always,0,,,,,,, +20811,ILL_KRAKEN@NPC_CALLSLAVE,idle,352,1,5000,0,30000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESILENCE,chase,663,1,2000,1000,20000,no,self,always,0,,,,,,32, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESILENCE,attack,663,1,2000,700,25000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDEFREEZE,chase,664,1,2000,1000,20000,yes,self,always,0,,,,,,36, +20843,ILL_ABYSMAL_WITCH@NPC_WIDEFREEZE,attack,664,1,2000,1000,20000,yes,self,always,0,,,,,,36, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESLEEP,chase,668,1,2000,700,25000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESLEEP,attack,668,1,2000,700,25000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_DARKTHUNDER,chase,341,3,500,1500,15000,no,target,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_DARKTHUNDER,attack,341,3,500,1500,15000,no,target,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESOULDRAIN,chase,680,1,1000,500,5000,no,self,always,0,,,,,,42, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESOULDRAIN,attack,680,1,1000,500,5000,no,self,always,0,,,,,,42, +20843,ILL_ABYSMAL_WITCH@WZ_WATERBALL,attack,86,10,3000,500,25000,no,target,always,0,,,,,,0, +20843,ILL_ABYSMAL_WITCH@WZ_WATERBALL,chase,86,10,3000,500,25000,no,target,always,0,,,,,,0, +20843,ILL_ABYSMAL_WITCH@NPC_WIDECURSE,chase,677,1,500,800,5000,no,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_SUMMONSLAVE,attack,196,1,10000,700,10000,no,self,slavele,3,20801,20802,20803,20804,20805,, +20843,ILL_ABYSMAL_WITCH@NPC_SUMMONSLAVE,idle,196,1,10000,700,10000,no,self,slavele,3,20801,20802,20803,20804,20805,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDECURSE,attack,677,1,500,800,5000,no,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESTUN,chase,678,1,2000,1300,180000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_WIDESTUN,attack,678,1,2000,1300,180000,yes,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_DARKNESSATTACK,attack,190,5,2000,0,5000,no,target,always,0,,,,,,29, +20843,ILL_ABYSMAL_WITCH@NPC_DARKNESSATTACK,chase,190,5,2000,0,5000,no,target,always,0,,,,,,29, +20843,ILL_ABYSMAL_WITCH@WZ_FROSTNOVA,chase,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@WZ_FROSTNOVA,attack,88,10,3000,1000,10000,no,self,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_PULSESTRIKE,attack,661,5,2000,0,30000,yes,self,always,0,,,,,,32, +20843,ILL_ABYSMAL_WITCH@HW_GANBANTEIN,attack,483,1,2000,0,5000,yes,target,always,0,,,,,,, +// 20843,ILL_ABYSMAL_WITCH@NPC_EARTHQUAKE_K,attack,750,5,10000,1500,25000,no,target,myhpltmaxrate,20,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_HELLJUDGEMENT2,chase,768,2,2000,500,5000,no,target,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_HELLJUDGEMENT2,attack,768,2,2000,500,5000,no,target,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_CLOUD_KILL,attack,739,5,2000,500,16000,no,target,always,0,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_DAMAGE_HEAL,attack,753,1,10000,1000,60000,no,target,myhpltmaxrate,10,,,,,,, +20843,ILL_ABYSMAL_WITCH@NPC_CALLSLAVE,idle,352,1,5000,0,30000,yes,self,always,0,,,,,,, + // Meister ABR's (Automated Battle Robot) 20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,chase,8601,1,10000,500,5000,yes,target,always,0,,,,,,, 20834,ABR_BATTLE_WARIOR@ABR_BATTLE_BUSTER,attack,8601,1,10000,500,5000,yes,target,always,0,,,,,,, diff --git a/db/re/quest_db.yml b/db/re/quest_db.yml index 3656727b83..5f5bb70f9f 100644 --- a/db/re/quest_db.yml +++ b/db/re/quest_db.yml @@ -1286,15 +1286,61 @@ Body: - Id: 3406 Title: Dragon Monster Hunt - Standby TimeLimit: 4h + - Id: 3407 + Title: The Fishing Rod of the Missing Person + - Id: 3408 + Title: Procurement of Abyssal Essence + - Id: 3409 + Title: Vortex leading to the Deep Sea + - Id: 3410 + Title: Sirud to the Surface + - Id: 3411 + Title: Defeating Deep Sea Creatures + Targets: + - Mob: ILL_SROPHO + Count: 10 + - Mob: ILL_MARSE + Count: 10 + - Mob: ILL_DEVIACE + Count: 10 + - Id: 3412 + Title: Collect Abyssal Essence + - Id: 3413 + Title: Collect Abyssal Essence - Daily - Id: 3414 Title: Collect Abyssal Essence - Standby TimeLimit: 4h + - Id: 3415 + Title: Defeat Deep Sea Creatures in the Upper Layers - Daily + Targets: + - Mob: ILL_SROPHO + Count: 10 + - Mob: ILL_MARSE + Count: 10 + - Mob: ILL_DEVIACE + Count: 10 - Id: 3416 Title: Defeat Deep Sea Creatures in the Upper Layers - Standby TimeLimit: 4h + - Id: 3417 + Title: Defeat Deep Sea Creatures in the Lower Layers - Daily + Targets: + - Mob: ILL_SWORD_FISH + Count: 10 + - Mob: ILL_PHEN + Count: 10 + - Mob: ILL_KING_DRAMOH + Count: 10 - Id: 3418 Title: Defeat Deep Sea Creatures in the Lower Layers - Standby TimeLimit: 4h + - Id: 3419 + Title: Defeat Deep Sea fishmen in the Lower Layers - Daily + Targets: + - Mob: ILL_SEDORA + Count: 15 + - Mob: ILL_STROUF + Count: 15 - Id: 3420 Title: Defeat Deep Sea fishmen in the Lower Layers - Standby TimeLimit: 4h diff --git a/npc/re/merchants/barters.yml b/npc/re/merchants/barters.yml index 62bf9a37c2..f8064e8001 100644 --- a/npc/re/merchants/barters.yml +++ b/npc/re/merchants/barters.yml @@ -56,3 +56,4 @@ Footer: - Path: npc/re/merchants/barters/enchantgrade.yml - Path: npc/re/merchants/barters/cashmall.yml - Path: npc/re/merchants/barters/rgsr_in.yml + - Path: npc/re/merchants/barters/enchan_illusion_16_2.yml diff --git a/npc/re/merchants/barters/enchan_illusion_16_2.yml b/npc/re/merchants/barters/enchan_illusion_16_2.yml new file mode 100644 index 0000000000..460d82df81 --- /dev/null +++ b/npc/re/merchants/barters/enchan_illusion_16_2.yml @@ -0,0 +1,231 @@ +# This file is a part of rAthena. +# Copyright(C) 2023 rAthena Development Team +# https://rathena.org - https://github.com/rathena +# +# 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 . +# +########################################################################### +# Barter Database +########################################################################### +# +# Barter Settings +# +########################################################################### +# - Name NPC name. +# Map Map name. (Default: not on a map) +# X Map x coordinate. (Default: 0) +# Y Map y coordinate. (Default: 0) +# Direction Direction the NPC is looking. (Default: North) +# Sprite Sprite name of the NPC. (Default: FakeNpc) +# Items: List of sold items. +# - Index Index of the item inside the shop. (0-...) +# Maximum index depends on client. +# Item Aegis name of the item. +# Stock Amount of item in stock. 0 means unlimited. (Default: 0) +# Zeny Cost of them item in Zeny. (Default: 0) +# RequiredItems: List of required items (Optional) +# - Index Index of the required item. (0-4) +# Item Aegis name of required item. +# Amount Amount of required item. (Default: 1) +# Refine Refine level of required item. (Default: 0) +########################################################################### + +Header: + Type: BARTER_DB + Version: 1 + +Body: + - Name: barter_ill_underwater + Items: + - Index: 0 + Item: Electric_Eel_IL + RequiredItems: + - Index: 0 + Item: Electric_Eel + Refine: 9 + - Index: 1 + Item: Deep_Sea_Starfish + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 1 + Item: Electronic_Guitar_IL + RequiredItems: + - Index: 0 + Item: Electronic_Guitar + Refine: 9 + - Index: 1 + Item: Deep_Sea_Starfish + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 2 + Item: Brionac_IL + RequiredItems: + - Index: 0 + Item: Brionac + Refine: 9 + - Index: 1 + Item: Deepsea_Fish_Tail + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 3 + Item: KatarOfCold_Icicle_IL + RequiredItems: + - Index: 0 + Item: Katar_Of_Cold_Icicle_ + Refine: 9 + - Index: 1 + Item: Deep_Sea_Crab + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 4 + Item: Death_Guidance_IL + RequiredItems: + - Index: 0 + Item: Death_Guidance + Refine: 9 + - Index: 1 + Item: Rotten_Deepseafish + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 5 + Item: Zephyrus_IL + RequiredItems: + - Index: 0 + Item: Zephyrus_ + Refine: 9 + - Index: 1 + Item: Abysmal_Clam + Amount: 150 + - Index: 2 + Item: IllusionStone + Amount: 120 + - Index: 6 + Item: Saint_Robe_IL + RequiredItems: + - Index: 0 + Item: Saint_Robe_ + Refine: 9 + - Index: 1 + Item: Deepsea_Fish_Tail + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 20 + - Index: 3 + Item: IllusionStone + Amount: 90 + - Index: 7 + Item: Water_Sprits_Armor_IL + RequiredItems: + - Index: 0 + Item: Water_Sprits_Armor_ + Refine: 9 + - Index: 1 + Item: Deep_Sea_Crab + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 20 + - Index: 3 + Item: IllusionStone + Amount: 90 + - Index: 8 + Item: Chain_Mail_IL + RequiredItems: + - Index: 0 + Item: Chain_Mail_ + Refine: 9 + - Index: 1 + Item: Deep_Sea_Starfish + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 20 + - Index: 3 + Item: IllusionStone + Amount: 90 + - Index: 9 + Item: Morrigane_Helm_IL + RequiredItems: + - Index: 0 + Item: Morrigane's_Helm + Refine: 9 + - Index: 1 + Item: Deep_Sea_Crab + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 50 + - Index: 3 + Item: IllusionStone + Amount: 100 + - Index: 10 + Item: Morrigane_Manyeau_IL + RequiredItems: + - Index: 0 + Item: Morrigane's_Manteau + Refine: 9 + - Index: 1 + Item: Rotten_Deepseafish + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 50 + - Index: 3 + Item: IllusionStone + Amount: 100 + - Index: 11 + Item: Morrigane_Belt_IL + RequiredItems: + - Index: 0 + Item: Morrigane's_Belt + - Index: 1 + Item: Deepsea_Fish_Tail + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 50 + - Index: 3 + Item: IL_Kraken_Leg + Amount: 15 + - Index: 4 + Item: IllusionStone + Amount: 100 + - Index: 12 + Item: Morrigane_Pendant_IL + RequiredItems: + - Index: 0 + Item: Morrigane's_Pendant + - Index: 1 + Item: Abysmal_Clam + Amount: 100 + - Index: 2 + Item: E_Abyss1 + Amount: 50 + - Index: 3 + Item: Crown_Of_Witch + Amount: 15 + - Index: 4 + Item: IllusionStone + Amount: 100 diff --git a/npc/re/merchants/enchan_illusion_16_2.txt b/npc/re/merchants/enchan_illusion_16_2.txt index e66d5820f5..df15bdf249 100644 --- a/npc/re/merchants/enchan_illusion_16_2.txt +++ b/npc/re/merchants/enchan_illusion_16_2.txt @@ -12,6 +12,7 @@ //= 1.3 Added Illusion of Frozen enchanter [Capuche] //= 1.4 Added Illusion of Turtle enchanter [Capuche] //= 1.5 Added Illusion of Luanda enchanter [Capuche] +//= 1.6 Added Illusion of Underwater exchange [Capuche] //============================================================ //============================================================ @@ -1645,3 +1646,32 @@ S_Data: } return (.@size/2); } + + +//============================================================ +//= Illusion of Underwater +//============================================================ + +iz_d04_i,134,228,4 script Horen#Horen 4_M_BIBI,{ + if (checkweight(1201,3) == 0) { + mes "Conversation cannot proceed because you have too many items."; + mes "Please clean up your inventory and try again."; + close; + } + mes "[Horen]"; + mes "Hello. If you have rare materials from this place, I can enhance your equipment."; + next; + mes "[Horen]"; + mes "Would you like to see upgradeable equipment?"; + next; + if (select( "Yes", "No" ) == 2) { + mes "[Horen]"; + mes "Come back if interested."; + close; + } + mes "[Horen]"; + mes "There are many types, so take your time. If you want something, I can enhance it right away."; + close2; + callshop( "barter_ill_underwater" ); + end; +} diff --git a/npc/re/mobs/dungeons/iz_dun.txt b/npc/re/mobs/dungeons/iz_dun.txt index 8d2d4d5103..e87956f619 100644 --- a/npc/re/mobs/dungeons/iz_dun.txt +++ b/npc/re/mobs/dungeons/iz_dun.txt @@ -12,6 +12,7 @@ //= 1.3 Added Izlude Dungeon F6 spawns [Chilly] //= 1.4 Official F6 spawns. //= 1.5 Correct Spawn by Navigation's mob data. [attackjom] +//= 1.6 Added Illusion of Underwater. [Capuche] //============================================================ //================================================== @@ -119,3 +120,78 @@ iz_dun05,0,0 monster Sedora 2204,60,5000 iz_dun05,0,0 monster Pot Dofle 2203,30,5000 iz_dun05,0,0 monster King Dramoh 2198,25,5000 iz_dun05,0,0,0,0 boss_monster Kraken 2202,1,7200000,1800000,0 + +//================================================== +// Illusion of Underwater +//================================================== +iz_d04_i monster Deep Sea Sropho 20801,45,5000,0,"iz_d04_i_boss::OnMobDead" +iz_d04_i monster Deep Sea Obeaune 20802,45,5000,0,"iz_d04_i_boss::OnMobDead" +iz_d04_i monster Deep Sea Merman 20805,45,5000,0,"iz_d04_i_boss::OnMobDead" +iz_d04_i monster Deep Sea Marse 20804,45,5000,0,"iz_d04_i_boss::OnMobDead" +iz_d04_i monster Deep Sea Deviace 20803,45,5000,0,"iz_d04_i_boss::OnMobDead" + +- script iz_d04_i_boss -1,{ + end; +OnMobDead: + if (playerattached()) { + if (.count < 1500) // todo value ? + .count++; + if (!.boss_spawn && !.cooldown && .count == 1500) { + .boss_spawn = true; + .count = 0; + killmonster "iz_d04_i", "iz_d04_i_boss::OnBossDeath"; + // mapannounce "iz_d04_i", "", bc_map; // todo + getunitdata( killedgid, .@data ); + monster "iz_d04_i", .@data[UMOB_X], .@data[UMOB_Y], "--ja--", 20811,1, "iz_d04_i_boss::OnBossDeath"; // ILL_KRAKEN + end; + } + } + end; +OnBossDeath: + killmonster "iz_d04_i", "iz_d04_i_boss::OnBossDeath"; + .boss_spawn = false; + .cooldown = true; + initnpctimer; + end; + +OnTimer7200000: + .cooldown = false; + stopnpctimer; + end; +} + +iz_d05_i monster Deep Sea Strouf 20808,45,5000,0,"iz_d05_i_boss::OnMobDead" +iz_d05_i monster Deep Sea Swordfish 20807,45,5000,0,"iz_d05_i_boss::OnMobDead" +iz_d05_i monster Deep Sea Phen 20809,45,5000,0,"iz_d05_i_boss::OnMobDead" +iz_d05_i monster Deep Sea Sedora 20806,45,5000,0,"iz_d05_i_boss::OnMobDead" +iz_d05_i monster Deep Sea King Dramoh 20810,45,5000,0,"iz_d05_i_boss::OnMobDead" + +- script iz_d05_i_boss -1,{ + end; +OnMobDead: + if (playerattached()) { + if (.count < 1500) // todo value ? + .count++; + if (!.boss_spawn && !.cooldown && .count == 1500) { + .boss_spawn = true; + .count = 0; + killmonster "iz_d05_i", "iz_d05_i_boss::OnBossDeath"; + // mapannounce "iz_d05_i", "", bc_map; // todo + getunitdata( killedgid, .@data ); + monster "iz_d05_i", .@data[UMOB_X], .@data[UMOB_Y], "--ja--", 20843,1, "iz_d05_i_boss::OnBossDeath"; // ILL_ABYSMAL_WITCH + end; + } + } + end; +OnBossDeath: + killmonster "iz_d05_i", "iz_d05_i_boss::OnBossDeath"; + .boss_spawn = false; + .cooldown = true; + initnpctimer; + end; + +OnTimer7200000: + .cooldown = false; + stopnpctimer; + end; +} diff --git a/npc/re/quests/quests_16_2_illusion.txt b/npc/re/quests/quests_16_2_illusion.txt index 6fc3801b17..d664d5348f 100644 --- a/npc/re/quests/quests_16_2_illusion.txt +++ b/npc/re/quests/quests_16_2_illusion.txt @@ -12,6 +12,7 @@ //= 1.3 Added Illusion of Frozen [Capuche] //= 1.4 Added Illusion of Turtle [Capuche] //= 1.5 Added Illusion of Luanda [Capuche] +//= 1.6 Added Illusion of Underwater [Capuche] //============================================================ //============================================================ @@ -8710,3 +8711,1371 @@ S_MenuHunt: } return .@menu$; } + + +//============================================================ +//= Illusion of Underwater +//============================================================ +prt_elib,57,18,4 script Jerrymon#jerry 1_M_01,{ + if (ill_underwater == 0) { + mes "[Jerrymon]"; + mes "Um... Uhm..."; + next; + mes "[Jerrymon]"; + mes "Oh, what a surprise!!"; + next; + mes "[Jerrymon]"; + mes "What's up? I'm busy right now, so I'll talk to you later."; + close; + } + if (ill_underwater == 1) { + mes "[Jerrymon]"; + mes "Um... Uhm..."; + next; + mes "[Jerrymon]"; + mes "Oh, what a surprise!!"; + next; + mes "[Jerrymon]"; + mes "What's up? I'm a bit busy right now..."; + next; + mes "[Jerrymon]"; + mes "Ah, you're the one introduced by Raket. I've been waiting for you."; + mes "Can you show me your fishing rod?"; + next; + mes "- Jerrymon began to examine the rod closely. -"; + next; + mes "."; + next; + mes ".."; + next; + mes "..."; + next; + mes "...."; + next; + mes "....."; + next; + mes "[Jerrymon]"; + mes "Yes, that's right... this substance is just that... to discover it again like this..."; + next; + select( "What material are you talking about?" ); + mes "[Jerrymon]"; + mes "Adventurer, do you know where the deepest part of the sea is?"; + next; + select( "Well...??" ); + mes "[Jerrymon]"; + mes "It is a place called the ^4d4dffTrench^000000. To put it simply, you can think of it as a deep cliff in the sea."; + next; + mes "[Jerrymon]"; + mes "It is known that there are hundreds of different types of trenches in the world's oceans."; + next; + mes "[Jerrymon]"; + mes "The widest and deepest known trench is the ^4d4dffBahia Trench^000000 near Izlude."; + next; + mes "[Jerrymon]"; + mes "There are rare life forms at the bottom of the trench, and marine scientists like myself have shown great interest and have been exploring them."; + next; + mes "[Jerrymon]"; + mes "Though shallow trenches can be explored to some extent."; + next; + mes "[Jerrymon]"; + mes "But in the case of the Bahia Trench, scientists have calculated that scientifically, no life can exist because it is so incredibly deep."; + next; + mes "[Jerrymon]"; + mes "I recently found out that there is life in the Bahia Trench."; + next; + select( "How do you know that??" ); + mes "[Jerrymon]"; + mes "You can tell by the stone that contains my magic."; + next; + select( "A stone with magical power?" ); + mes "[Jerrymon]"; + mes "Yes, I'm a mage-turned-oceanographer. I learned magic for oceanography."; + next; + mes "[Jerrymon]"; + mes "Enchant a large boulder and make it fall to the floor where the trench exists."; + next; + mes "[Jerrymon]"; + mes "The magic on the dropped stone is connected to me, so by measuring the distance, I can get a little idea of how deep it is and what's going on near the stone."; + next; + mes "[Jerrymon]"; + mes "To tell you what I found out..."; + next; + mes "[Jerrymon]"; + mes "The composition of normal sea water and deep sea water is almost the same. But the only difference is the deep sea of Bahia Trench."; + next; + mes "[Jerrymon]"; + mes "Should I say it's like water and oil? There's a section where they never mix."; + next; + mes "[Jerrymon]"; + mes "A strong boundary was formed where they meet each other, and it felt as if the deep seawater in that section was desperately blocking the seawater coming down from above."; + next; + mes "[Jerrymon]"; + mes "The water pressure is also much lower than that of normal seawater, so it is assumed that it has a favorable environment for life."; + next; + mes "[Jerrymon]"; + mes "We call it ^4d4dffdeep seawater^000000"; + next; + select( "Is this gloss related to what you said?" ); + mes "[Jerrymon]"; + mes "Yes! That's right!!"; + mes "We only identified the existence of Abyssal Seawater deep in the Bahia Trench, and it was very difficult to obtain samples. This fishing rod has a lot of Abyssal Seawater on it..."; + next; + mes "[Jerrymon]"; + mes "Could you leave this fishing rod with me? I think I can figure something out if I extract this sea water and turn it into essence."; + next; + mes "[Jerrymon]"; + mes "Oh, and I heard that the fishing rod was found today. Can I ask you to check if there is another floating substance in the nearby sea?"; + next; + if (select( "Okay, I'll be back.", "I'm a bit busy right now..." ) == 2) { + mes "[Jerrymon]"; + mes "Please come back to me when you're done!"; + close; + } + mes "[Jerrymon]"; + mes "Yes, thanks! I'll be waiting for you!!"; + close2; + if (countitem(25898) > 0) + delitem 25898,1; // Siroods_Fish_Rod + ill_underwater = 2; + erasequest 3407; + end; + } + if (ill_underwater == 2) { + mes "[Jerrymon]"; + mes "I'm sorry to bother you, but please. I'll be waiting for you here."; + close; + } + if (ill_underwater == 3) { + if (countitem(25899) < 1) { + mes "[Jerrymon]"; + mes "I'm sorry to bother you, but please. I'll be waiting for you here."; + close; + } + mes "[Jerrymon]"; + mes "Ah, welcome, adventurer!"; + next; + mes "[Jerrymon]"; + mes "The investigation is going smoothly~"; + mes "Hey, could you take a look at this?"; + next; + mes "[Jerrymon]"; + mes "See those two little water bottles here?"; + next; + mes "[Jerrymon]"; + mes "One side is normal seawater, and the other side is seawater mixed with seawater from the abyss buried in fishing rods. I'll try mixing these two."; + next; + mes " - Jerrymon poured both waters into one bottle and began to shake them together. - "; + next; + mes "[Jerrymon]"; + mes "Now, look. As I said before, they don't mix at all, do they?"; + next; + mes "[Jerrymon]"; + mes "This... this!!"; + next; + mes "[Jerrymon]"; + mes "If you shake it like crazy!!"; + next; + mes "[Jerrymon]"; + mes "Wow!!!!!!"; + next; + mes "[Jerrymon]"; + mes "Uwachachaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!"; + next; + mes "[Jerrymon]"; + mes "Ahhhhhhh!!!!!!"; + next; + mes "[Jerrymon]"; + mes "Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh..."; + next; + select( "Oh, I'm going to catch someone, is it okay?" ); + mes "[Jerrymon]"; + mes "Keep... Whoa... Whoa... OK now."; + next; + mes "- Looking into the bottle Jerrymon is holding, I can clearly see the shape of the vortex. - "; + next; + mes "[Jerrymon]"; + mes "Now, do you see this whirlpool!! This is the passage that connects to the bottom of the Bahia Trench!"; + next; + select( "??? Isn't that just a whirlpool created by shaking it?" ); + mes "[Jerrymon]"; + mes "No. This is the stone that contains my magical power. Let's look at it."; + next; + mes " - Jerrymon put a glowing stone into the bottle. The glowing stone was sucked into the whirlpool inside the bottle and disappeared without a trace! - "; + next; + select( "No, how could it be?" ); + mes "[Jerrymon]"; + mes "Did I ever tell you that the stone that contains my magic can measure the distance to me?"; + next; + mes "[Jerrymon]"; + mes "It feels the same as the last time I threw a pebble into the Bahia Trench.."; + mes "If you follow this whirlpool, you may be able to find the owner of the fishing rod."; + next; + mes "[Jerrymon]"; + mes "The problem is... the amount of essence on a fishing rod can't make a whirlpool large enough for a person to fit in."; + next; + select( "Is this amount okay?" ); + mes "- Showed the ^4d4dff" + getitemname(25899) + "^000000 received from Gein to Jerrymon. - "; + next; + mes "[Jerrymon]"; + mes "Oh, just in case, I actually found it!"; + next; + mes "[Jerrymon]"; + mes "With this amount, I think I can create a vortex of fissures that normal people can enter. You can pass it to me."; + next; + mes "[Jerrymon]"; + mes "The place is too small to do this much here, so let's do it in Izlude. In order to get help from your friends."; + mes "Then see you in Izlude!!"; + close2; + delitem 25899,1; // E_Abyss1 + ill_underwater = 4; + erasequest 3408; + setquest 3409; + end; + } + if (ill_underwater == 4) { + mes "[Jerrymon]"; + mes "Then let's meet in Izlude!!"; + close; + } + mes "[Jerrymon]"; + mes "I'm sorry to bother you, but please. I'll be waiting for you here."; + close; + +OnInit: + // note: no questinfo for 3407 + questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(3408) == 1" ); + end; +} + + +izlude,126,53,0 script Sirood#SRD1 HIDDEN_WARP_NPC,4,4,{ + end; +OnTouch: + if (ill_underwater > 3) + cloakoffnpcself( "Jerrymon#jerry2" ); + if (ill_underwater > 6) + cloakoffnpcself( "Sirood#SRD2" ); + end; +} +izlude,132,54,0 duplicate(Sirood#SRD1) Jerrymon#jerry1 HIDDEN_WARP_NPC,4,4 + +izlude,126,53,4 script Sirood#SRD2 1_M_04,{ + mes "[Sirood]"; + mes "Thank you very much, adventurer."; + next; + mes "[Sirood]"; + mes "I thought I'd never come back..."; + close; +} + +izlude,129,49,4 script Soup#Soup 1_M_02,{ + if (ill_underwater < 5) { + mes "[Soup]"; + mes "Hello, my name is Soup, a friend of Sirood who is missing."; + next; + mes "[Soup]"; + mes "The four of us, Sirood, Raket, Gein, and I often enjoyed fishing."; + next; + mes "[Soup]"; + mes "That windy day... I had been feeling very guilty for not stopping Sirood from going fishing."; + next; + mes "[Soup]"; + mes "When I heard that Sirood's fishing pole was found, I jumped out."; + next; + mes "[Soup]"; + mes "You must have a clue about something?"; + close; + } + if (ill_underwater < 7) { + mes "[Soup]"; + mes "I did my best."; + next; + mes "[Soup]"; + mes "Should Sirood come back safely?"; + close; + } + mes "[Soup]"; + mes "Sirood is back with us."; + next; + mes "[Soup]"; + mes "Thanks to you, adventurer. Thank you very much."; + close; +} + +izlude,135,51,4 script Raket#Raket 1_F_MERCHANT_01,{ + if (ill_underwater < 5) { + mes "[Raket]"; + mes "It's been exactly 3 months since Sirood went missing."; + next; + mes "[Raket]"; + mes "Sirood's fishing rod was found."; + next; + mes "[Raket]"; + mes "I felt that way."; + next; + select( "What do you think?" ); + mes "[Raket]"; + mes "Why is this only discovered now, isn't this a message from someone?"; + next; + select( "Looking at it, it doesn't make sense." ); + mes "[Raket]"; + mes "Ha... It's just my delusion. I especially miss that child today."; + close; + } + if (ill_underwater < 7) { + mes "[Raket]"; + mes "Heh heh... It's so hard to use all your strength..."; + next; + mes "[Raket]"; + mes "But for Sirood's sake..."; + close; + } + mes "[Raket]"; + mes "Thank you so much!!"; + next; + mes "[Raket]"; + mes "Now you can fish with Sirood again."; + next; + mes "[Raket]"; + mes "I'm so glad..."; + close; +} + +izlude,132,49,5 script Gein#Gein 4W_M_01,{ + if (checkweight(1201,3) == 0) { + mes "You have too many items."; + mes "Please clean up your items and try again."; + close; + } + if (BaseLevel < 140) { + mes "[Gein]"; + mes "Haha... why did this only get discovered now??"; + mes "It's impossible, this is..."; + next; + mes "- I feel serious anguish from this person. Let's come back after I've become level 140. -"; + close; + } + if (ill_underwater == 0) { + mes "[Gein]"; + mes "Haha...why did this only get discovered now??"; + mes "It's impossible, this is..."; + next; + select( "Do you have any concerns?" ); + mes "[Gein]"; + mes "Oh, hello..."; + next; + mes "- He is very fidgety with a fishing pole in his hand. It doesn't look like he's out fishing. - "; + next; + mes "[Gein]"; + mes "This fishing rod belongs to my friend Sirood who went missing three months ago. I found something!!!"; + next; + select( "Disappeared?" ); + mes "[Gein]"; + mes "Yes... Sirood is a fishing fanatic and came here to fish whenever he had a chance."; + next; + mes "[Gein]"; + mes "Influenced by Sirood, we also fell in love with fishing, and the four of us often had a good time."; + next; + mes "[Gein]"; + mes "Sirood's passion for fishing was to the point that he invited us to go fishing even in the rain and wind."; + next; + mes "[Gein]"; + mes "The day Sirood went missing was exactly the same rainy and windy day. I put on my raincoat and went to go fishing."; + next; + mes "[Gein]"; + mes "We were invited to go out together, but they all declined."; + next; + mes "[Gein]"; + mes "Sirood went fishing alone and we haven't seen him since..."; + next; + mes "[Gein]"; + mes "I should have stopped you from leaving..."; + next; + mes "- Gein started talking again after wiping away tears for a moment. -"; + next; + mes "[Gein]"; + mes "The news of Sirood's disappearance immediately spread throughout Izlude and a large-scale search was conducted with a lot of time and manpower invested, but the search ended without finding any clues."; + next; + mes "[Gein]"; + mes "After that, we got together and ran everywhere to find Sirood, but there was no result, and we were about to give up."; + next; + mes "[Gein]"; + mes "But just now!!"; + next; + mes "[Gein]"; + mes "After 3 months!!!"; + next; + mes "[Gein]"; + mes "Sirood's fishing pole has risen above sea level. His item was nowhere to be found during the search!"; + next; + select( "Now, calm down... Are you sure it's Sirood's fishing rod?" ); + mes "[Gein]"; + mes "Yes, I'm sure! It's the fishing rod I've always seen."; + next; + mes "[Gein]"; + mes "This fishing rod was made by Sirood himself, so it is the only one. You can see the initials on the handle here, S.R.D!!"; + next; + select( "Oh, then why now..." ); + mes "[Gein]"; + mes "I'm so surprised and shocked right now that I don't know what to do."; + next; + mes "- But looking closely at the fishing rod, I feel something different. This wooden fishing rod has been submerged in water for 3 months, but it still looks the same, and I can see a bit of shiny gloss... -"; + next; + select( "Isn't this fishing rod a bit strange over there?" ); + mes "[Gein]"; + mes "Strange, what is it?"; + next; + mes "[Gein]"; + mes "Uh..."; + next; + mes "[Gein]"; + mes "Uh.....??"; + next; + mes "[Gein]"; + mes "It's been submerged in water for 3 months... but it hasn't corroded at all. It's completely fine??"; + next; + mes "[Gein]"; + mes "Hmm... And it seems to have a subtle glow... It seems like the fishing rod is coated?"; + next; + mes "-The person who seemed to be Gein's friend who was listening to the story opened his mouth. -"; + next; + mes "[Raket]"; + mes "Where is it, I want to see it!! What's wrong??"; + next; + mes "[Gein]"; + mes "This fishing rod... It was submerged in the water for 3 months, but it was found in its original form, or worse, in a state of disrepair."; + next; + mes "[Raket]"; + mes "Ugh..."; + next; + mes "[Raket]"; + mes "Um..."; + next; + mes "- Raket looked intently at his fishing pole, then answered Gein. -"; + next; + mes "[Raket]"; + mes "I'm not sure either?"; + next; + mes "[Gein]"; + mes "Certainly!! I don't know, but would you?"; + next; + mes "[Raket]"; + mes "Ummm... but I know someone who might know a little about this rod."; + next; + mes "[Gein]"; + mes "Who??"; + next; + select( "Who?" ); + mes "[Raket]"; + mes "His name is Jerrymon, a marine scientist. I've met my father a few times. I know you are in the East Library of Prontera."; + next; + mes "[Gein]"; + mes "Ah, ah... then... hey adventurer!! I'm sorry for the first meeting, but can I ask you a favor?? We can't get out of here in Izlude..."; + next; + mes "[Gein]"; + mes "Please go see Jerrymon and show him this fishing rod...even if it's trivial...I hope he has some information.."; + next; + if (select( "Okay. Let's go.", "Sorry. I'm a bit busy right now..." ) == 2) { + mes "[Gein]"; + mes "No... are you sure?"; + next; + mes "[Gein]"; + mes "Are you turning around after hearing about this heartbreaking story and mysterious clue..."; + close; + } + mes "[Gein]"; + mes "Ugh... Thanks!"; + next; + mes "[Gein]"; + mes "^4d4dffJerrymon^000000 should still be at the [East Library]prontera,192,264, in Prontera."; + next; + mes "[Gein]"; + mes "Now, I'll give you the fishing rod, a keepsake from Sirood. Thank you..."; + next; + mes "[Raket]"; + mes "What??? It's a keepsake!! You don't even know if Sirood is alive or dead!!"; + next; + mes "[Gein]"; + mes "Uhhh... yes I made a mistake, this is the fishing rod Sirood left behind. Please take good care of it."; + next; + mes "[Raket]"; + mes "I'll tell Jerrymon about the contents in advance through my father!"; + next; + mes "[Gein & Raket & Soup]"; + mes "Thank you!!!"; + close2; + getitem 25898,1; // Siroods_Fish_Rod + ill_underwater = 1; + setquest 3407; + end; + } + if (ill_underwater == 1) { + mes "[Gein]"; + mes "You can go to Prontera's [East Library]prontera,192,264, as Raket told you."; + next; + mes "[Gein]"; + mes "Take care of yourself!! I hope there is even the smallest clue..."; + close; + } + if (ill_underwater == 2) { + mes "[Gein]"; + mes "Ah, you're here!!!"; + next; + mes "[Gein]"; + mes "Do you have any information about Sirood?"; + next; + mes "- I relayed what I heard from Jerrymon. -"; + next; + mes "[Gein]"; + mes "Ah... I see, I've never heard of a trench before."; + next; + mes "[Gein]"; + mes "I can't believe there's such a big and deep trench near Izlude..."; + next; + mes "[Gein]"; + mes "Oh, by the way, is there anything else you need for coming back here?"; + next; + select( "I was wondering if there was anything else found besides the fishing rod." ); + mes "[Gein]"; + mes "Oh right!!"; + next; + mes "[Gein]"; + mes "It's a chunk scooped up with a landing net near where the fishing rod was found."; + next; + mes " - This lump is what Jerrymon said."; + mes "^4d4dffIt must be the essence of the abyss^000000. - "; + next; + mes "[Gein]"; + mes "Something shiny and has the same feeling of Sirood's fishing rod, so I secured it for now."; + mes "Could this nugget help?"; + next; + select( "Thanks, that would be a great help." ); + mes "[Gein]"; + mes "Are you going back to Jerrymon? Please be careful."; + close2; + getitem 25899,1; // E_Abyss1 + ill_underwater = 3; + setquest 3408; + end; + } + if (ill_underwater == 3) { + mes "[Gein]"; + mes "I hope Sirood will appear in front of us intact, just as the fishing rod appeared intact..."; + next; + mes "[Gein]"; + mes "Please let me know if you have any new information!"; + close; + } + if (ill_underwater < 7) { + mes "[Gein]"; + mes "Heh...heh...Hello adventurer, heh...heh... I'm so tired I can't move..."; + close; + } + mes "[Gein]"; + mes "Thank you, adventurer."; + next; + mes "[Gein]"; + mes "To be able to meet Sirood again is like a dream."; + close; + +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "ill_underwater == 0" ); + questinfo( QTYPE_QUEST2, QMARK_YELLOW, "ill_underwater == 2" ); + end; +} + +izlude,132,54,4 script(CLOAKED) Jerrymon#jerry2 1_M_01,{ + if (ill_underwater < 4) + end; + if (ill_underwater == 4) { + mes "[Jerrymon]"; + mes "Ah you're here!!"; + next; + mes "[Jerrymon]"; + mes "We are fully prepared while the adventurers are coming."; + next; + mes "- Gein gasps to say hello to his two friends. - "; + next; + mes "[Gein]"; + mes "Ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha... ah, welcome adventurer."; + next; + mes "[Gein]"; + mes "I'm not sure what the principle is, but I stirred it diligently as Jerrymon-sama told me to!!"; + next; + mes "[Raket & Soup]"; + mes "Hee... hee... hee... ah... hello."; + next; + mes "[Jerrymon]"; + specialeffect EF_MAP_MAGICZONE3; + mes "Okay, shall we begin?"; + next; + mes "[Jerrymon]"; + mes "The whirlpool will be created soon."; + next; + mes "[Jerrymon]"; + mes "Hold my hand when I give you a signal!!"; + next; + select( "No, wait. Are you leaving right now?" ); + mes "[Jerrymon]"; + mes "Yes, yes, go ahead and don't think about it! Just trust me~~!!"; + next; + mes "[Jerrymon]"; + mes "Okay now. Take my hand!"; + next; + specialeffect EF_CASTSPIN2, AREA; + mes "[Jerrymon]"; + mes "Wow! It spins round and round~~!!"; + close2; + ill_underwater = 5; + erasequest 3409; + specialeffect EF_CASTSPIN2, AREA; + warp "iz_d04_i",130,227; + end; + } + mes "[Jerrymon]"; + mes "Hello!!"; + next; + mes "[Jerrymon]"; + mes "Thanks to you, Adventurer, I am having a fun and exciting time every day."; + next; + mes "[Jerrymon]"; + mes "Would you like to go to the deep sea again? I will follow you!!"; + next; + if (select( "Please", "I'll go next time" ) == 2) { + mes "[Jerrymon]"; + mes "Yeah... Then I'll be waiting for you."; + close; + } + mes "[Jerrymon]"; + specialeffect EF_MAP_MAGICZONE3; + mes "Good."; + next; + specialeffect EF_CASTSPIN2; + mes "[Jerrymon]"; + mes "Come on! Let's go~~!! Yay!!"; + close2; + specialeffect EF_CASTSPIN2, AREA; + warp "iz_d04_i",130,227; + end; + +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(3409) == 1" ); + end; +} + + +iz_d04_i,127,228,4 script Jerrymon#jerry3 1_M_01,{ + if (checkweight(1201,3) == 0) { + mes "You have too many items."; + mes "Please clean up your items and try again."; + close; + } + if (ill_underwater < 5) + end; + if (ill_underwater == 5) { + switch( checkquest(3411,HUNTING) ) { + case -1: + mes "[Jerrymon]"; + mes "Wow... this purple sea... it's fantastic!!!"; + next; + mes "[Jerrymon]"; + mes "It's so amazing that we can breathe without gills, there's no sea pressure, and even marine life that I've never seen before...!!!"; + next; + mes "[Jerrymon]"; + mes "There's more than one or two things to look into, I'll be busy."; + mes "Wow... so exciting!!! I think this is the most thrilling moment in my 14 years as an oceanographer!"; + next; + mes "[Jerrymon]"; + mes "Lululala~~~"; + next; + select( "Oh hey, I'm here to find Sirood..." ); + mes "[Jerrymon]"; + mes "Ah, ah... that, right? That should take precedence."; + next; + mes "[Jerrymon]"; + mes "In order to bring Sirood back ashore, we need an additional ^4d4dff" + getitemname(25899) + "^000000. The question is how to get it..."; + next; + mes "[Jerrymon]"; + mes "I've been watching the deep sea creatures here, and I've seen some of them glow with the essence of the abyss."; + mes "And they seem to threaten us sometimes."; + next; + mes "[Jerrymon]"; + mes "In that sense, could you handle some of the deep sea creatures? Maybe we can get ^4d4dff" + getitemname(25899) + "^000000 from them."; + next; + mes "[Jerrymon]"; + mes "Please take out 10 each of ^4d4dff" + getmonsterinfo("ILL_SROPHO", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_DEVIACE", MOB_NAME) + "^000000, and ^4d4dff" + getmonsterinfo("ILL_MARSE", MOB_NAME) + "^000000."; + next; + if (select( "Okay", "I'll do it next time" ) == 2) { + mes "[Jerrymon]"; + mes "Yes yes~ I'll be waiting for you here!"; + close; + } + mes "[Jerrymon]"; + mes "Yes yes~ I'll be waiting for you here!"; + close2; + setquest 3411; + end; + case 0: + case 1: + mes "[Jerrymon]"; + mes "Please take out 10 each of ^4d4dff" + getmonsterinfo("ILL_SROPHO", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_DEVIACE", MOB_NAME) + "^000000, and ^4d4dff" + getmonsterinfo("ILL_MARSE", MOB_NAME) + "^000000."; + next; + mes "[Jerrymon]"; + mes "I'll be waiting for you here."; + close; + case 2: + mes "[Jerrymon]"; + mes "Thank you for your hard work, you also brought ^4d4dff" + getitemname(25899) + "^000000!! As expected, my prediction was correct."; + next; + mes "[Jerrymon]"; + mes "It looks like we only need about 10 ^4d4dff" + getitemname(25899) + "^000000 to send Sirood back ashore."; + next; + mes "[Jerrymon]"; + mes "If you collect them, I'll create a whirlpool for you."; + next; + mes "[Jerrymon]"; + mes "Oh, and this is a stone I found while researching. I've been keeping it because it looks like something that could be used by adventurers, so please take it."; + next; + mes "[Jerrymon]"; + mes "Then be careful!"; + close2; + getitem 25271,2; // IllusionStone + ill_underwater = 6; + erasequest 3411; + setquest 3412; + getexp 4441860,3109150; + end; + } + end; + } + if (ill_underwater == 6) { + if (countitem(25899) < 10) { + mes "[Jerrymon]"; + mes "Please bring ^4d4dff10 " + getitemname(25899) + "^000000."; + next; + mes "[Jerrymon]"; + mes "I'd like to save it myself, but as you can see I'm weak, heck."; + close; + } + mes "[Jerrymon]"; + mes "Thank you for your hard work!! You brought 10 ^4d4dff" + getitemname(25899) + "^000000."; + next; + mes "[Jerrymon]"; + mes "Would you like to go ashore now?"; + next; + if (select( "Go ashore", "Not going up now" ) == 2) { + mes "[Jerrymon]"; + mes "Talk to me when you're ready to go ashore!"; + close; + } + mes "[Jerrymon]"; + mes "I found this again while waiting for adventurer. Please accept it!!"; + next; + mes "[Jerrymon]"; + mes "Okay, let's condense this..."; + next; + mes "[Jerrymon]"; + mes "Huh...!!"; + next; + mes "[Jerrymon]"; + mes "Now, Adventurer and Sirood!! Can you help me?? Ehhh!!!!"; + next; + mes "- A huge whirlpool was created in front of Jerrymon! -"; + specialeffect EF_MAP_MAGICZONE3; + next; + mes "[Jerrymon]"; + mes "Then I'll cross first!!! Follow me carefully!"; + specialeffect EF_CASTSPIN2; + close2; + delitem 25899,10; // E_Abyss1 + ill_underwater = 7; + erasequest 3412; + if (isbegin_quest(3410) == 1) + erasequest 3410; + getitem 25271,2; // IllusionStone + getexp 4441860,3109150; + warp "izlude",128,54; + end; + } + + // daily + if (checkquest(3414,PLAYTIME) == 2 && checkquest(3416,PLAYTIME) == 2) { + mes "[Jerrymon]"; + mes "I have everything I need for today's survey, thank you!!"; + next; + mes "[Jerrymon]"; + mes "Looks like you've finished your business. Would you like to move to Izlude?"; + next; + if (select( "Move", "Do not move" ) == 2) { + mes "[Jerrymon]"; + mes "Please let me know if you need any help!"; + close; + } + specialeffect EF_MAP_MAGICZONE3; + mes "[Jerrymon]"; + mes "Okay, huh!"; + next; + mes "[Jerrymon]"; + mes "I'm going to cross~~ Ah!!"; + specialeffect EF_CASTSPIN2; + close2; + warp "izlude",128,54; + end; + } + mes "[Jerrymon]"; + mes "Hello, research is going well."; + next; + mes "[Jerrymon]"; + mes "If we do well, we might be able to make the vortex linking here and Izlude last forever!"; + next; + mes "[Jerrymon]"; + mes "So, can you help me a bit more?"; + next; + mes "[Jerrymon]"; + mes "I need more ^4d4dff" + getitemname(25899) + "^000000, and I'd like you to take care of the ^4d4dffDeep Sea Creatures^000000 that get in the way of my research."; + next; + switch( select( "Okay", "I'll do it next time", "I want to go back to Izlude" ) ) { + case 1: + mes "[Jerrymon]"; + mes "Thanks!! Can you do something for me?"; + next; + + switch( checkquest(3414,PLAYTIME) ) { + case -1: + switch( isbegin_quest(3413) ) { + case 0: + .@menu$[0] = "Collect " + getitemname(25899) + ""; + break; + case 1: + if (countitem(25899) < 10) + .@menu$[0] = "Collecting " + getitemname(25899) + " - In Progress"; + else + .@menu$[0] = "Collect " + getitemname(25899) + " - Done"; + break; + case 2: + end; + } + break; + case 0: + case 1: + .@menu$[0] = "^999999" + getitemname(25899) + " Collection - Pending^000000"; + break; + case 2: + break; + } + + switch( checkquest(3416,PLAYTIME) ) { + case -1: + switch( checkquest(3415,HUNTING) ) { + case -1: + .@menu$[1] = "Kill Deep Sea Creatures"; + break; + case 0: + case 1: + .@menu$[1] = "Kill sea creatures - In Progress"; + break; + case 2: + .@menu$[1] = "Kill Deep Sea Creatures - Done"; + break; + } + break; + case 0: + case 1: + .@menu$[1] = "^999999Deep Sea Creatures Killed - Pending^000000"; + break; + case 2: + break; + } + + switch( select( .@menu$[0], .@menu$[1], "Next time." ) ) { + case 1: + switch( checkquest(3414,PLAYTIME) ) { + case -1: + break; + case 0: + case 1: + end; // todo + case 2: + erasequest 3414; + break; + } + switch( isbegin_quest(3413) ) { + case 0: + mes "[Jerrymon]"; + mes "^4d4dff" + getitemname(25899) + "^000000 can be obtained from all the deep sea creatures here."; + mes "I need 10 right now."; + next; + mes "[Jerrymon]"; + mes "Then take care of yourself~~!!"; + close2; + setquest 3413; + end; + case 1: + if (countitem(25899) < 10) { + mes "[Jerrymon]"; + mes "I need 10 ^4d4dff" + getitemname(25899) + "^000000."; + next; + mes "[Jerrymon]"; + mes "Come back to me when you've collected all the essences!"; + close; + } + mes "[Jerrymon]"; + mes "You've collected all the " + getitemname(25899) + "!!"; + next; + mes "[Jerrymon]"; + mes "Thank you, I'll put it to good use in my research."; + close2; + delitem 25899,10; // E_Abyss1 + getexp 4441860,3109150; + erasequest 3413; + setquest 3414; + getitem 25271,1; // IllusionStone + end; + case 2: + end; + } + end; + case 2: + switch( checkquest(3416,PLAYTIME) ) { + case -1: + break; + case 0: + case 1: + end; // todo + case 2: + erasequest 3416; + break; + } + switch( checkquest(3415,HUNTING) ) { + case -1: + mes "[Jerrymon]"; + mes "Please kill 10 each of ^4d4dff" + getmonsterinfo("ILL_SROPHO", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_DEVIACE", MOB_NAME) + "^000000 and ^4d4dff" + getmonsterinfo("ILL_MARSE", MOB_NAME) + "^000000 that roam around here."; + next; + mes "[Jerrymon]"; + mes "Then take care of yourself~~!!"; + close2; + setquest 3415; + end; + case 0: + case 1: + mes "[Jerrymon]"; + mes "Please kill 10 each of ^4d4dff" + getmonsterinfo("ILL_SROPHO", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_DEVIACE", MOB_NAME) + "^000000, and ^4d4dff" + getmonsterinfo("ILL_MARSE", MOB_NAME) + "^000000."; + close; + case 2: + mes "[Jerrymon]"; + mes "You've finished dealing with all the deep sea creatures, thank you for your hard work."; + next; + mes "[Jerrymon]"; + mes "I'll get back to you if I need help. Thanks!!"; + close2; + getitem 25271,1; // IllusionStone + getexp 4441860,3109150; + erasequest 3415; + setquest 3416; + end; + } + end; + case 3: + mes "[Jerrymon]"; + mes "The only person I can ask for is you..."; + next; + mes "[Jerrymon]"; + mes "Feel free to tell me if you change your mind!!"; + close; + } + end; + case 2: + mes "[Jerrymon]"; + mes "I'll be staying here for a while, so let me know if you change your mind!!"; + close; + case 3: + specialeffect EF_MAP_MAGICZONE3; + mes "[Jerrymon]"; + mes "Okay, huh!"; + next; + mes "[Jerrymon]"; + mes "I'm going to cross~~ Ah!!"; + specialeffect EF_CASTSPIN2; + close2; + warp "izlude",128,54; + end; + } + end; + +OnInit: + questinfo( QTYPE_QUEST, QMARK_YELLOW, "ill_underwater == 5 && checkquest(3411,HUNTING) == -1" ); + questinfo( QTYPE_QUEST2, QMARK_YELLOW, "ill_underwater == 5 && checkquest(3411,HUNTING) == 2" ); + questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(3412) == 1 && countitem(25899) >= 10" ); + + // daily + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "ill_underwater == 7 && checkquest(3414,PLAYTIME) == -1 && isbegin_quest(3413) == 0" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(3413) == 1 && countitem(25899) >= 10" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3414,PLAYTIME) == 2" ); + + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "ill_underwater == 7 && checkquest(3416,PLAYTIME) == -1 && checkquest(3415,HUNTING) == -1" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3415,HUNTING) == 2" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3416,PLAYTIME) == 2" ); + end; +} + + +iz_d04_i,134,223,4 script Jane#Jane01 1_F_01,{ + if (ill_underwater < 6) { + mes "[???]"; + mes "Hello."; + next; + select( "Are you Sirood?" ); + mes "[Jane]"; + mes "No, my name is Jane."; + next; + mes "[Jane]"; + mes "Sirood...?"; + mes "I think I've heard that name somewhere..."; + close; + } + mes "[Jane]"; + mes "Hello, it looks like you've been here a while..."; + next; + mes "[Jane]"; + mes "How do you like it? Isn't this a pretty charming place too?"; + next; + mes "[Jane]"; + mes "I should go back to my hometown..."; + close; +} + +iz_d04_i,142,216,4 script Sunrin#Sun01 4_F_03,{ + if (ill_underwater < 6) { + mes "[???]"; + mes "You said you were looking for someone named Sirood?"; + next; + mes "[Sunrin]"; + mes "My name is Sunrin."; + next; + mes "[Sunrin]"; + mes "Sirood... ah, I think I know who it is."; + next; + mes "[Sunrin]"; + mes "Go all the way to the left, and you'll find him."; + next; + mes "[Sunrin]"; + mes "Then have a nice day today!!"; + close; + } + mes "[Sunrin]"; + mes "All the people here are immigrants and settlers."; + next; + mes "[Sunrin]"; + mes "As you can see, there are traces of civilization in these depths, but everyone here was an outsider."; + next; + mes "[Sunrin]"; + mes "You'll get used to it soon."; + next; + mes "[Sunrin]"; + mes "Sea monsters do attack from time to time, but that's about it..."; + close; +} + +iz_d04_i,125,226,0 script Sirood#SRD3 HIDDEN_WARP_NPC,4,4,{ + end; +OnTouch: + if (ill_underwater < 7 && isbegin_quest(3410) == 0) + cloakoffnpcself( "Sirood#SRD4" ); + end; +} + +iz_d04_i,125,226,5 script(CLOAKED) Sirood#SRD4 1_M_04,{ + if (ill_underwater != 5 && ill_underwater != 6) + end; + switch( isbegin_quest(3410) ) { + case 0: + mes "[Sirood]"; + mes "Hello, Adventurer."; + next; + mes " - Sirood greeted me as if he had been waiting. -"; + next; + mes "[Sirood]"; + mes "It looks like the message I sent reached Izlude, I'm so glad..."; + next; + mes "[Sirood]"; + mes "About 3 months ago... I went fishing on a rainy and windy day."; + next; + mes "[Sirood]"; + mes "After I caught my first fish, I tripped and fell into the water while trying to get it out with a fishing pole."; + next; + mes "[Sirood]"; + mes "I was trying to swim as hard as I could to get out, but I felt something pulling me in with great force."; + next; + mes "[Sirood]"; + mes "What, it looked like a whirlpool... I thought I was going to die... and when I woke up, I found this place."; + next; + mes "[Sirood]"; + mes "I don't know why I can't breathe or why I don't feel hungry even if I don't eat."; + next; + mes "[Sirood]"; + mes "And observing the surroundings here, I could see small vortices forming occasionally."; + next; + mes "[Sirood]"; + mes "I had a hunch that it was the same kind of whirlpool I was swept into."; + next; + mes "[Sirood]"; + mes "The duration of the vortex is very short. It took me 2 months just to put my fishing rod with my name on it into the vortex."; + next; + mes "[Sirood]"; + mes "Waiting for someone to discover..."; + next; + mes "[Sirood]"; + mes "Are you sure you came to me with that fishing rod as a clue?"; + next; + select( "That's right" ); + mes "[Sirood]"; + mes "Ah, that's a relief... I'd appreciate it if you could take me with you when you return ashore."; + next; + mes "- I think we should talk to Jerrymon about the work to send Sirood ashore. - "; + close2; + setquest 3410; + end; + case 1: + mes "[Sirood]"; + mes "Adventurer, please take me with you when you return ashore."; + close; + case 2: + end; + } + end; +} + +iz_d04_i,146,226,4 script Nick#Nick01 2_M_SAGE_B,{ + mes "[Nick]"; + mes "How is it? Is it worth living here?"; + next; + mes "[Nick]"; + mes "It's deeper here than anywhere else, and it's amazing to be able to breathe freely."; + mes "I'm not sure how that works."; + close; +} + + +// Floor 2 +iz_d04_i,129,232,5 script Gatekeeper#guard1 4_M_KY_SOLD,{ + if (BaseLevel < 180) { + mes "[Gatekeeper]"; + mes "Your strength isn't enough to cross to the lower levels."; + //close; // close is used on official + next; + mes "[Gatekeeper]"; + mes "Please come back after you are at least level 180."; + close; + } + mes "[Gatekeeper]"; + mes "If you go downstairs, you will run into some pretty vicious fish. Would that be alright?"; + next; + if (select( "Sure", "I'll come next time" ) == 1) { + mes "[Gatekeeper]"; + mes "Please talk to me again when you are ready to cross."; + close; + } + mes "[Gatekeeper]"; + mes "Then be careful."; + close2; + warp "iz_d05_i",141,186; + end; +} + +iz_d05_i,141,188,5 script Guardian#guard2 4_M_KY_SOLD,{ + mes "[Gatekeeper]"; + mes "Hello, would you like to go upstairs again?"; + next; + if (select( "Yes", "No" ) == 2) { + mes "[Gatekeeper]"; + mes "Please talk to me again when you are ready to cross."; + close; + } + mes "[Gatekeeper]"; + mes "Then be careful."; + close2; + warp "iz_d04_i",129,227; + end; +} + +iz_d05_i,138,186,5 script Kena#Kena 4_M_02,{ + if (checkweight(1201,3) == 0) { + mes "You have too many items."; + mes "Please clean up your items and try again."; + close; + } + if (BaseLevel < 180) + end; + if (ill_underwater < 5) + end; + if (checkquest(3418,PLAYTIME) == 2 && checkquest(3420,PLAYTIME) == 2) { + mes "[Kena]"; + mes "Thank you for your hard work. Take a good rest today and visit us tomorrow."; + close; + } + mes "[Kena]"; + mes "Hello, Adventurer."; + next; + mes "[Kena]"; + mes "I heard that there are many dangerous deep-sea creatures in the lower layer, but when I came here, they were more dangerous than I thought."; + next; + mes "[Kena]"; + mes "Not too long ago, there was a lot of uproar when a creature from the lower layer came up to the upper layer."; + next; + mes "[Kena]"; + mes "The population of deep sea creatures is increasing. Adventurer, may I ask for your help?"; + next; + if (select( "Yes", "No" ) == 2) { + mes "[Kena]"; + mes "Oops..."; + next; + mes "[Kena]"; + mes "It would be dangerous if left unattended..."; + close; + } + mes "[Kena]"; + mes "Thank you, I'd appreciate it if you could help me defeat the deep sea creatures or fishmen."; + next; + mes "[Kena]"; + mes "What would you like to do?"; + next; + .@menu$[0] = callsub( S_Quest, "Kill Deep Sea Creatures", 3418,3417 ); + .@menu$[1] = callsub( S_Quest, "Destroy the Deep Sea Fishmen", 3420,3419 ); + + switch( select( .@menu$[0], .@menu$[1], "Next time." ) ) { + case 1: + switch( checkquest(3418,PLAYTIME) ) { + case -1: + break; + case 0: + case 1: + mes "[Kena]"; + mes "I think this is enough for today, please come back tomorrow."; + close; + case 2: + erasequest 3418; + break; + } + switch( checkquest(3417,HUNTING) ) { + case -1: + mes "[Kena]"; + mes "Please kill 10 each of ^4d4dff" + getmonsterinfo("ILL_SWORD_FISH", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_PHEN", MOB_NAME) + "^000000, and ^4d4dff" + getmonsterinfo("ILL_KING_DRAMOH", MOB_NAME) + "^000000."; + next; + mes "[Kena]"; + mes "These monsters are quite ferocious, so be very careful."; + next; + mes "[Kena]"; + mes "Thank you."; + close2; + setquest 3417; + end; + case 0: + case 1: + mes "[Kena]"; + mes "^4d4dff" + getmonsterinfo("ILL_SWORD_FISH", MOB_NAME) + "^000000, ^4d4dff" + getmonsterinfo("ILL_PHEN", MOB_NAME) + "^000000, and ^4d4dff" + getmonsterinfo("ILL_KING_DRAMOH", MOB_NAME) + "^000000."; + next; + mes "[Kena]"; + mes "Please kill 10 of each."; + close; + case 2: + mes "[Kena]"; + mes "They've all been eliminated, thank you for your hard work."; + next; + mes "[Kena]"; + mes "If you have time, please come back tomorrow. I'll be waiting for you."; + close2; + getitem 25271,1; // IllusionStone + getexp 20107500,14075250; + erasequest 3417; + setquest 3418; + end; + } + end; + case 2: + switch( checkquest(3420,PLAYTIME) ) { + case -1: + break; + case 0: + case 1: + mes "[Kena]"; + mes "I think this is enough for today, please come back tomorrow."; + close; + case 2: + erasequest 3420; + break; + } + switch( checkquest(3419,HUNTING) ) { + case -1: + mes "[Kena]"; + mes "Please take out 15 ^4d4dff" + getmonsterinfo("ILL_SEDORA", MOB_NAME) + "^000000 and ^4d4dff" + getmonsterinfo("ILL_STROUF", MOB_NAME) + "^000000 each."; + next; + mes "[Kena]"; + mes "They are quite annoying, so be careful."; + close2; + setquest 3419; + end; + case 0: + case 1: + mes "[Kena]"; + mes "Please take out 15 ^4d4dff" + getmonsterinfo("ILL_SEDORA", MOB_NAME) + "^000000 and ^4d4dff" + getmonsterinfo("ILL_STROUF", MOB_NAME) + "^000000 each."; + close; + case 2: + mes "[Kena]"; + mes "They've all been eliminated, thank you for your hard work."; + next; + mes "[Kena]"; + mes "Please drop by tomorrow when the time is right. I'll be waiting for you."; + close2; + getitem 25271,1; // IllusionStone + getexp 20107500,14075250; + setquest 3420; + erasequest 3419; + end; + } + end; + case 3: + mes "[Kena]"; + mes "Oops..."; + next; + mes "[Kena]"; + mes "It would be dangerous if left unattended..."; + close; + } + end; + +S_Quest: + switch( checkquest(getarg(1),PLAYTIME) ) { + case -1: + switch( checkquest(getarg(2),HUNTING) ) { + case -1: + .@string$ = getarg(0); + break; + case 0: + case 1: + .@string$ = getarg(0) + " - In Progress"; + break; + case 2: + .@string$ = getarg(0) + " - Done"; + break; + } + break; + case 0: + case 1: + .@string$ = "^999999" + getarg(0) + " - Pending^000000"; + break; + case 2: + .@string$ = getarg(0); + break; + } + return .@string$; + +OnInit: + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3418,PLAYTIME) == -1 && checkquest(3417,HUNTING) == -1" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3417,HUNTING) == 2" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3418,PLAYTIME) == 2" ); + + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3420,PLAYTIME) == -1 && checkquest(3419,HUNTING) == -1" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3419,HUNTING) == 2" ); + questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(3420,PLAYTIME) == 2" ); + end; +}