diff --git a/db/mob_chat_db.yml b/db/mob_chat_db.yml index ac75a22d28..ecef898824 100644 --- a/db/mob_chat_db.yml +++ b/db/mob_chat_db.yml @@ -126,6 +126,26 @@ Body: Dialog: This is the truth! Hahahahah! - Id: 58 # !todo Unknown dialogue Dialog: Attack! + - Id: 60 + Dialog: Go !! Ultra Critical Bash EX !! + - Id: 61 + Dialog: Come on!! Hell's Fireball !! + - Id: 62 + Dialog: Kneel before me!! The vast power of capitalism !! + - Id: 63 + Dialog: You can't run from me!! Double Strafe, pierce through my enemies !! + - Id: 64 + Dialog: I'm gonna make you sick!!! Ultimate generational Envenom !! + - Id: 65 + Dialog: I'll roll over you!! Ultimate Decrease Agility GX !! + - Id: 67 + Dialog: Dark cast that narrows the field of vision! It can only be removed with a green potion! + - Id: 68 + Dialog: A poison that continuously lowers HP for a certain period of time! But it is not released with a green herb! + - Id: 69 + Dialog: Let's start with recovery! + - Id: 70 + Dialog: Silence that cannot use skills! You can only escape by eating green potions! Footer: Imports: diff --git a/db/re/instance_db.yml b/db/re/instance_db.yml index b774a16482..8b183c96c3 100644 --- a/db/re/instance_db.yml +++ b/db/re/instance_db.yml @@ -369,3 +369,9 @@ Body: Map: 1@md_gef X: 106 Y: 129 + - Id: 47 + Name: Poring Village + Enter: + Map: 1@begi + X: 100 + Y: 22 diff --git a/db/re/item_db_usable.yml b/db/re/item_db_usable.yml index 93857e1091..ef51f61059 100644 --- a/db/re/item_db_usable.yml +++ b/db/re/item_db_usable.yml @@ -3396,7 +3396,7 @@ Body: Script: | itemheal rand(45,65),0; - Id: 11569 - AegisName: Orange_Potion_ + AegisName: Orange_Potion_B Name: Orange Potion Type: Healing Buy: 10 @@ -47477,6 +47477,16 @@ Body: Container: true Script: | getgroupitem(IG_Enchant_Stone_Box12); + - Id: 23302 + AegisName: PoringsPreciousBox + Name: Poring Treasure Box + Type: Usable + Weight: 200 + EquipLevelMin: 30 + Flags: + Container: true + Script: | + getgroupitem(IG_PORINGSPRECIOUSBOX); - Id: 23307 AegisName: Comp_M_DEFScroll Name: "[Sale] Shining Defense Scroll" diff --git a/db/re/item_group_db.yml b/db/re/item_group_db.yml index f13af44a01..8d54a814dd 100644 --- a/db/re/item_group_db.yml +++ b/db/re/item_group_db.yml @@ -31475,3 +31475,15 @@ Body: - Item: S_Absorb_Shield RefineMinimum: 7 RefineMaximum: 10 + - Group: PORINGSPRECIOUSBOX + SubGroups: + - SubGroup: 0 + List: + - Item: Orange_Potion_B + Amount: 3 + - Item: N_Fly_Wing + Amount: 3 + - Item: Candy_Striper_B + Amount: 5 + - Item: Candy_B + Amount: 5 diff --git a/db/re/mob_db.yml b/db/re/mob_db.yml index 4821d41eaa..6eccc09de6 100644 --- a/db/re/mob_db.yml +++ b/db/re/mob_db.yml @@ -92166,20 +92166,326 @@ Body: # AegisName: E_POPORING_CLOVER # - Id: 3809 # AegisName: FATAL_BUG -# - Id: 3810 -# AegisName: MD_KING_PORING -# - Id: 3811 -# AegisName: MD_GOLDRING -# - Id: 3812 -# AegisName: MD_AMERING -# - Id: 3813 -# AegisName: MD_DROPS -# - Id: 3814 -# AegisName: MD_POPORING -# - Id: 3815 -# AegisName: MD_PORING -# - Id: 3816 -# AegisName: MD_MARIN + - Id: 3810 + AegisName: MD_KING_PORING + Name: King Poring + Level: 35 + Hp: 140000 + BaseExp: 9580 + JobExp: 8288 + Attack: 131 + Attack2: 119 + Defense: 20 + MagicDefense: 20 + Str: 50 + Agi: 50 + Vit: 50 + Int: 50 + Dex: 50 + Luk: 50 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Formless + Element: Neutral + ElementLevel: 2 + WalkSpeed: 170 + AttackDelay: 768 + AttackMotion: 1632 + DamageMotion: 576 + Ai: 21 + Class: Boss + Modes: + Mvp: true + MvpDrops: + - Item: Seed_Of_Yggdrasil + Rate: 3000 + - Item: PoringTownOnion + Rate: 1000 + - Item: PoringTownCarrot + Rate: 100 + Drops: + - Item: Large_Jellopy + Rate: 3000 + - Item: Jejellopy + Rate: 3000 + - Item: Blue_Herb + Rate: 3000 + - Item: White_Herb + Rate: 3000 + - Item: Yellow_Herb + Rate: 3000 + - Item: Green_Herb + Rate: 3000 + - Item: Old_Violet_Box + Rate: 10 + - Id: 3811 + AegisName: MD_GOLDRING + Name: Hugh Goldling + Level: 35 + Hp: 72118 + BaseExp: 6327 + JobExp: 5565 + Attack: 98 + Attack2: 89 + Defense: 10 + MagicDefense: 10 + Str: 40 + Agi: 40 + Vit: 40 + Int: 40 + Dex: 40 + Luk: 40 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Formless + Element: Holy + ElementLevel: 1 + WalkSpeed: 200 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 21 + Class: Boss + Drops: + - Item: Jejellopy + Rate: 3000 + - Item: Yellow_Herb + Rate: 3000 + - Item: Golden_Jewel + Rate: 10 + - Item: Yellow_Slim_Potion + Rate: 10 + - Id: 3812 + AegisName: MD_AMERING + Name: Huge Amering + Level: 35 + Hp: 72810 + BaseExp: 6375 + JobExp: 5524 + Attack: 97 + Attack2: 89 + Defense: 10 + MagicDefense: 10 + Str: 40 + Agi: 40 + Vit: 40 + Int: 40 + Dex: 40 + Luk: 40 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Large + Race: Formless + Element: Poison + ElementLevel: 1 + WalkSpeed: 200 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 21 + Class: Boss + Drops: + - Item: Jejellopy + Rate: 3000 + - Item: Blue_Herb + Rate: 100 + - Item: Violet_Jewel + Rate: 10 + - Item: Red_Herb + Rate: 3000 + - Id: 3813 + AegisName: MD_DROPS + Name: Enriched Drops + Level: 35 + Hp: 1095 + BaseExp: 377 + JobExp: 300 + Attack: 62 + Attack2: 22 + Defense: 10 + MagicDefense: 10 + Str: 20 + Agi: 20 + Vit: 20 + Int: 20 + Dex: 20 + Luk: 20 + AttackRange: 1 + SkillRange: 10 + ChaseRange: 12 + Size: Small + Race: Formless + Element: Fire + ElementLevel: 1 + WalkSpeed: 300 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 02 + Drops: + - Item: Jellopy + Rate: 5000 + - Item: Rod_ + Rate: 80 + - Item: Sticky_Mucus + Rate: 600 + - Item: Apple + Rate: 1000 + - Item: Wing_Of_Fly + Rate: 500 + - Item: Apple + Rate: 400 + - Item: Orange_Juice + Rate: 20 + - Item: Drops_Card + Rate: 25 + StealProtected: true + - Id: 3814 + AegisName: MD_POPORING + Name: Enriched Poporing + Level: 36 + Hp: 1167 + BaseExp: 384 + JobExp: 309 + Attack: 67 + Attack2: 24 + Defense: 10 + MagicDefense: 12 + Str: 20 + Agi: 20 + Vit: 20 + Int: 20 + Dex: 20 + Luk: 20 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Small + Race: Formless + Element: Wind + ElementLevel: 1 + WalkSpeed: 300 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 02 + Drops: + - Item: Sticky_Mucus + Rate: 5000 + - Item: Garlet + Rate: 1000 + - Item: Green_Herb + Rate: 1000 + - Item: Grape + Rate: 200 + - Item: Wing_Of_Fly + Rate: 500 + - Item: Main_Gauche + Rate: 20 + - Item: Green_Potion + Rate: 500 + - Item: Poporing_Card + Rate: 10 + StealProtected: true + - Id: 3815 + AegisName: MD_PORING + Name: Enriched Poring + Level: 34 + Hp: 1023 + BaseExp: 369 + JobExp: 291 + Attack: 58 + Attack2: 20 + Defense: 10 + MagicDefense: 12 + Str: 20 + Agi: 20 + Vit: 20 + Int: 20 + Dex: 20 + Luk: 20 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Small + Race: Formless + Element: Earth + ElementLevel: 1 + WalkSpeed: 300 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 02 + Drops: + - Item: Jellopy + Rate: 5000 + - Item: Knife_ + Rate: 100 + - Item: Sticky_Mucus + Rate: 400 + - Item: Apple + Rate: 1000 + - Item: Wing_Of_Fly + Rate: 500 + - Item: Apple + Rate: 150 + - Item: Unripe_Apple + Rate: 40 + - Item: Poring_Card + Rate: 20 + StealProtected: true + - Id: 3816 + AegisName: MD_MARIN + Name: Enriched Marin + Level: 33 + Hp: 960 + BaseExp: 358 + JobExp: 279 + Attack: 53 + Attack2: 19 + Defense: 10 + MagicDefense: 10 + Str: 20 + Agi: 20 + Vit: 20 + Int: 20 + Dex: 20 + Luk: 20 + AttackRange: 2 + SkillRange: 10 + ChaseRange: 12 + Size: Small + Race: Formless + Element: Water + ElementLevel: 1 + WalkSpeed: 300 + AttackDelay: 1872 + AttackMotion: 672 + DamageMotion: 480 + Ai: 02 + Drops: + - Item: Garlet + Rate: 1600 + - Item: Sticky_Mucus + Rate: 750 + - Item: Cold_Scroll_2_1 + Rate: 50 + - Item: Wing_Of_Fly + Rate: 500 + - Item: Blue_Herb + Rate: 38 + - Item: Candy + Rate: 175 + - Item: Poring_Hat + Rate: 1 + - Item: Marin_Card + Rate: 1 + StealProtected: true # - Id: 3817 # AegisName: DALCOM # - Id: 3818 diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt index ee46b4a769..2030a2774b 100644 --- a/db/re/mob_skill_db.txt +++ b/db/re/mob_skill_db.txt @@ -12863,6 +12863,30 @@ 3765,Deranged Adventurer@NPC_TALK,idle,682,10,2500,0,35000,yes,self,always,0,,,,,,,53 3765,Deranged Adventurer@NPC_TALK,idle,682,10,2500,0,30000,yes,self,always,0,,,,,,,54 +// Poring Village instance +3810,MD_KING_PORING@SM_BASH,attack,5,3,1000,1000,9000,yes,target,always,0,,,,,,,60 +3810,MD_KING_PORING@MG_FIREBALL,attack,17,3,1000,1000,9000,yes,target,always,0,,,,,,,61 +3810,MD_KING_PORING@MC_MAMMONITE,attack,42,3,1000,1000,9000,yes,target,always,0,,,,,,,62 +3810,MD_KING_PORING@AC_DOUBLE,attack,46,3,1000,1000,9000,yes,target,always,0,,,,,,,63 +3810,MD_KING_PORING@TF_POISON,attack,52,3,1000,1000,9000,yes,target,always,0,,,,,,,64 +3810,MD_KING_PORING@AL_DECAGI,attack,30,3,1000,1000,9000,yes,target,always,0,,,,,,,65 +3811,MD_GOLDRING@NPC_STUNATTACK,attack,179,5,3500,1000,10000,no,target,always,0,,,,,,, +// todo NPC_WIDECONFUSE2 +//3812,MD_AMERING@NPC_WIDECONFUSE2,attack,762,1,3000,2000,20000,yes,target,always,0,,,,,,, +3812,MD_AMERING@NPC_WIDECONFUSE,attack,667,1,3000,2000,20000,yes,target,always,0,,,,,,, +3813,MD_DROPS@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,,,,,,, +3813,MD_DROPS@NPC_FIREATTACK,attack,186,1,2000,100,5000,yes,target,always,0,,,,,,, +3813,MD_DROPS@NPC_BLINDATTACK,attack,177,3,2000,1000,15000,yes,target,always,0,,,,,,,67 +3814,MD_POPORING@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,,,,,,2, +3814,MD_POPORING@NPC_POISON,attack,176,1,500,1000,15000,no,target,always,0,,,,,,, +3814,MD_POPORING@NPC_POISONATTACK,attack,188,1,2000,900,15000,yes,target,always,0,,,,,,,68 +3815,MD_PORING@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,,,,,,2, +3815,MD_PORING@NPC_SILENCEATTACK,attack,178,2,1500,1000,15000,no,target,always,0,,,,,,,70 +3816,MD_MARIN@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,0,,,,,,2, +3816,MD_MARIN@NPC_WATERATTACK,attack,184,1,2000,1000,15000,yes,target,always,0,,,,,,, +3816,MD_MARIN@AL_HEAL,idle,28,1,10000,500,5000,yes,friend,myhpltmaxrate,90,,,,,,2, +3816,MD_MARIN@AL_HEAL,attack,28,1,10000,500,5000,yes,friend,myhpltmaxrate,90,,,,,,,69 + // Episode 17.1 - Illusion (custom) #!todo 20340,EL-A17T@NPC_AGIUP,chase,350,5,2000,0,60000,no,self,always,0,,,,,,6, 20340,EL-A17T@NPC_POWERUP,attack,349,5,2000,0,60000,no,self,always,0,,,,,,6, diff --git a/db/re/quest_db.yml b/db/re/quest_db.yml index c272813adc..4a5ad531c8 100644 --- a/db/re/quest_db.yml +++ b/db/re/quest_db.yml @@ -8251,9 +8251,13 @@ Body: - Id: 12411 Title: Come Back Tomorrow TimeLimit: 4h + - Id: 12416 + Title: Contract with Emily - Id: 12417 Title: Recovering Fatigue TimeLimit: 4h + - Id: 12418 + Title: First visit to Poring Village - Id: 12420 Title: Recovering Fatigue TimeLimit: 4h diff --git a/npc/re/instances/PoringVillage.txt b/npc/re/instances/PoringVillage.txt new file mode 100644 index 0000000000..005833f28b --- /dev/null +++ b/npc/re/instances/PoringVillage.txt @@ -0,0 +1,686 @@ +//===== rAthena Script ======================================= +//= Poring Village +//===== Description: ========================================= +//= [Walkthrough Conversion] +//= Poring Village instance +//===== Changelogs: ========================================== +//= 1.0 First version. [Capuche] +//============================================================ + +// Enchant +prt_fild05,174,238,7 script Veggie Enchanter#0 4_F_02,2,2,{ + mes "[Veggie Enchanter]"; + mes "50 Jellopies and 20,000 zeny are all you need to get special effect on your green onion or carrot!"; + next; + mes "[Veggie Enchanter]"; + mes "Enchant and reset have ^ff000030% of failure.^000000 Invest in your veggie and luck!"; + next; + switch( select( "How much do I need to enchant?", "Enchant to Poring Village Veggie", "Reset Poring Village Veggie" ) ) { + case 1: + mes "[Veggie Enchanter]"; + mes "As I heard, you can get Poring Village Green Onion or Carrot if you go west a bit more from here."; + next; + mes "[Veggie Enchanter]"; + mes "I do enchant to the fresh vegetable."; + next; + mes "[Veggie Enchanter]"; + mes "Enchant or Reset requires 20,000z and 50 Jellopy! It's not bad, is it?"; + next; + mes "[Veggie Enchanter]"; + mes "Well... As you know, it's a vegetable any way. So sometimes it can be broken."; + close; + case 2: + .@equip_id = getequipid(EQI_HEAD_LOW); + + switch( .@equip_id ) { + case -1: + mes "[Veggie Enchanter]"; + mes "Please put on the equipment you'd like to enchant first."; + close; + case 19238: // PoringTownOnion + case 19239: // PoringTownCarrot + break; + default: + mes "[Veggie Enchanter]"; + mes "This is not a vegetable!?"; + close; + } + if (getequipcardid(EQI_HEAD_LOW,3) > 0) { + mes "[Veggie Enchanter]"; + mes "This vegetable cannot be enchanted anymore."; + close; + } + if (countitem(909) < 50 || Zeny < 20000) { + mes "[Veggie Enchanter]"; + mes "This enchant requires 50 Jellopy and 20,000z..... But... you don't have them."; + close; + } + delequip EQI_HEAD_LOW; + delitem 909,50; // Jellopy + Zeny -= 20000; + + if (rand(100) < 70) { + .@r = rand(5356); + if (.@r < 160) .@card = 4795; // HP100 + else if (.@r < 200) .@card = 4796; // HP200 + else if (.@r < 1000) .@card = 4928; // SP10 + else if (.@r < 1400) .@card = 4870; // SP25 + else if (.@r < 1480) .@card = 4800; // SP50 + else if (.@r < 1880) .@card = 4700; // Strength1 + else if (.@r < 2280) .@card = 4730; // Agility1 + else if (.@r < 3410) .@card = 4740; // Vitality1 + else if (.@r < 3810) .@card = 4710; // Inteligence1 + else if (.@r < 4210) .@card = 4720; // Dexterity1 + else if (.@r < 5340) .@card = 4750; // Luck1 + else if (.@r < 5348) .@card = 4992; // HPdrain1 + else if (.@r < 5356) .@card = 4993; // SPdrain1 + + getitem2 .@equip_id,1,1,0,0,0,0,0,.@card; + mes "[Veggie Enchanter]"; + mes "Tada! Enchant is done! Check your vegetable."; + specialeffect2 EF_REPAIRWEAPON; + close; + } + mes "[Veggie Enchanter]"; + mes "It must have been a rotten vegetable. It's a shame that I can't stand this level of power..."; + specialeffect2 EF_LORD; + close; + case 3: + .@equip_id = getequipid(EQI_HEAD_LOW); + + switch( .@equip_id ) { + case -1: + mes "[Veggie Enchanter]"; + mes "Please put on the equipment you'd like to enchant first."; + close; + case 19238: // PoringTownOnion + case 19239: // PoringTownCarrot + break; + default: + mes "[Veggie Enchanter]"; + mes "This is not a vegetable!?"; + close; + } + if (getequipcardid(EQI_HEAD_LOW,3) == 0) { + mes "[Veggie Enchanter]"; + mes "This is a vegetable that has never been fortified..."; + close; + } + if (countitem(909) < 50 || Zeny < 20000) { + mes "[Veggie Enchanter]"; + mes "This enchant requires 50 Jellopy and 20,000z..... But... you don't have them."; + close; + } + delequip EQI_HEAD_LOW; + delitem 909,50; // Jellopy + Zeny -= 20000; + + if (rand(100) < 70) { + getitem .@equip_id,1; + mes "[Veggie Enchanter]"; + mes "The item is complete! Check it out."; + specialeffect2 EF_REPAIRWEAPON; + close; + } + mes "[Veggie Enchanter]"; + mes "It must have been a rotten vegetable. It's a shame that I can't stand this level of power..."; + specialeffect2 EF_LORD; + close; + } + end; + +OnTouch: + npctalk "Veggie Enchanter: Make your green onion or carrot stronger!", "", bc_self; + end; +} + + +// Instance +prt_fild05,145,235,5 script Emily#0 4_GEFFEN_03,4,4,{ + if (BaseLevel < 30) { + mes "[Emily]"; + mes "Wow~ You look like a novice. I do want to adventure with you someday when you grow up!"; + close; + } + if (BaseLevel > 60) { + mes "[Emily]"; + mes "Oh, now you are stronger than me. How did you grow so fast?"; + next; + mes "[Emily]"; + mes "I should find another adventurer who is similar with my level. It's been nice knowing you."; + close; + } + if (isbegin_quest(12416) == 0) { + mes "[Emily]"; + mes "My name is Emily. I was waiting for someone who will go on adventures with me!"; + next; + select("Who said I will adventure with you?"); + mes "[Emily]"; + mes "Well, come one. Don't be stern. Listen, you can decide after listening to my story. Of course, I can give you a proper reward."; + next; + if (select( "Proper Reward?", "I'm not interested." ) == 2) { + mes "[Emily]"; + mes "How square! It's much better to be together!"; + close; + } + mes "[Emily]"; + mes "Yes! Proper Reward."; + next; + mes "[Emily]"; + mes "It seems this Poring Village can be defeated by beginners just like us. It's just a wild guess though..."; + next; + mes "[Emily]"; + mes "Well, actually I cannot give you the reward officially through adventurer association. But we can separate the income after hunting."; + next; + select("But 50-50 sounds fair to me."); + mes "[Emily]"; + mes "No way. 70-30. And I'm 70 of course."; + next; + select("It's gotta be 50-50 or it's no good"); + mes "[Emily]"; + mes "How about 60-40!!"; + next; + select("50-50 ..."); + mes "[Emily]"; + mes "This drives me crazy. OK, 50-50. Let's go with this."; + setquest 12416; // Contract with Emily + completequest 12416; + close; + } + switch( checkquest(12417,PLAYTIME) ) { + case -1: + break; + case 0: + case 1: + mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000"; + next; + mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding.^000000"; + next; + mes "[Emily]"; + mes "So, are you ready?"; + next; + mes "[Emily]"; + mes "You look very tired."; + next; + mes "[Emily]"; + mes "Why don't you come back after a while? Take a break for now."; + close; + case 2: + mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000"; + next; + mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding. ^000000"; + next; + mes "[Emily]"; + mes "So, are you ready?"; + next; + mes "^0000ffAll Traces of the Poring Village quest were removed. Now, talk to Emily again to enter^000000"; + erasequest 12417; + close; + } + mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000"; + next; + mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding.^000000"; + next; + mes "[Emily]"; + mes "So, are you ready?"; + if (isbegin_quest(12418) == 0) + setquest 12418; // First Visit to Poring Village + next; + if (getcharid(1) < 1) { + mes "[Emily]"; + mes "Hmm you should create a party first to start this grand adventure."; + close; + } + .@md_name$ = "Poring Village"; + + if (is_party_leader()) + .@menu$[0] = "Create the entrance"; + if (instance_live_info(ILI_NAME, instance_id(IM_PARTY)) == .@md_name$) + .@menu$[1] = "Enter the dungeon"; + + switch( select( .@menu$[0], .@menu$[1], "Cancel" ) ) { + case 1: + mes "[Emily]"; + mes "Now I'm looking for the entrance, please talk to me again after it's totally open."; + instance_create(.@md_name$); + close; + case 2: + switch( instance_enter(.@md_name$) ) { + case IE_OTHER: + mes "An unknown error occurred."; + close; + case IE_NOINSTANCE: + mes "^ff0000Time's crack is not created yet.^000000"; + close; + case IE_NOMEMBER: + end; + case IE_OK: + mapannounce "prt_fild05", "Party member " + strcharinfo(0) + " of the party " + getpartyname(getcharid(0)) + " enters " + .@md_name$ + ".", bc_map,0xFF9900; + setquest 12417; // Overcoming fatigue + // warp "1@begi",100,22; + end; + } + end; + case 3: + end; + } + end; + +OnTouch: + if (isbegin_quest(12416) == 0 && BaseLevel >= 30 && BaseLevel <= 60) + npctalk "Emily: Hey, there! May I talk to you for a minute?"; + end; + +OnInit: + questinfo( QTYPE_JUMPING_PORING, QMARK_YELLOW , "isbegin_quest(12416) == 0 && BaseLevel >= 30 && BaseLevel <= 60" ); + end; +} + +1@begi,106,30,0 script #start_wp1_0 HIDDEN_WARP_NPC,4,4,{ + end; +OnTouch: + disablenpc(); + donpcevent instance_npcname("#start_wp1_1") + "::OnStart"; + end; + +OnInstanceInit: + 'map_begi$ = instance_mapname("1@begi"); + + setcell 'map_begi$,146,35,146,41,cell_walkable,0; + setcell 'map_begi$,154,100,154,107,cell_walkable,0; + setcell 'map_begi$,59,187,59,197,cell_walkable,0; + + disablenpc instance_npcname("#start_wp1_2"); + disablenpc instance_npcname("#gift"); + end; +} + +1@begi,106,30,5 script #start_wp1_1 4_GEFFEN_03,{ + mes "[Emily]"; + mes "Let's go forward."; + close; + +OnStart: + npctalk "Emily: So.. is this Poring Village?"; + sleep 2000; + npctalk "Emily: OK. Let's go!"; + sleep 2000; + disablenpc(); + donpcevent instance_npcname("#start_wp1_2") + "::OnStart"; + donpcevent instance_npcname("poring_village_1") + "::OnStart"; + end; +} + +1@begi,140,37,5 script #start_wp1_2 4_GEFFEN_03,{ + mes "[Emily]"; + mes "I'm going to start slowly now..."; + close; + +OnStart: + enablenpc(); + sleep 1000; + npctalk "Emily: Hmmm. It seems they made barriers not to let us go easily."; + sleep 3000; + npctalk "Emily: I'm quite sure Poring gathered a lot of treasure somewhere."; + sleep 4000; + mapannounce 'map_begi$, "???: I can hear a human's voice. Make them welcome, everybody.", bc_map, 0xFFFF00; + sleep 4000; + npctalk "Emily: What is it saying?"; + sleep 3000; + npctalk "Emily: It sounds someone is rushing here... "; + sleep 2500; + mapannounce 'map_begi$, "???: Don't let them run! Take all valuable items from them!", bc_map, 0xFFFF00; + sleep 2500; + npctalk "Emily: Well... OK. They don't seem very friendly. Quick, hide!"; + sleep 4000; + // disablenpc(); + hideonnpc(); // hideonnpc instead of disablenpc (official) to display text on rAthena + sleep 1000; + npctalk "Emily: Oooops. Can't you hide? Well..... Cheer up!"; + // disablenpc instance_npcname("#poring_wl18"); + hideonnpc instance_npcname("#poring_wl18"); + specialeffect EF_LORD,AREA, instance_npcname("#poring_wl18"); + sleep 500; + // disablenpc instance_npcname("#poring_wl19"); + hideonnpc instance_npcname("#poring_wl19"); + specialeffect EF_LORD,AREA, instance_npcname("#poring_wl19"); + sleep 500; + disablenpc instance_npcname("#poring_wl15"); + sleep 500; + disablenpc instance_npcname("#poring_wl16"); + disablenpc instance_npcname("#poring_wl17"); + disablenpc instance_npcname("#poring_wl20"); + disablenpc instance_npcname("#poring_wl21"); + setcell 'map_begi$,146,35,146,41,cell_walkable,1; + end; +} + +// First wall +1@begi,146,35,6 duplicate(dummy_npc) #poring_wl15 4_ROPEPILE,1,0 +1@begi,146,36,6 duplicate(dummy_npc) #poring_wl16 4_ROPEPILE,1,0 +1@begi,146,37,6 duplicate(dummy_npc) #poring_wl17 4_ROPEPILE,1,0 +1@begi,146,38,6 duplicate(dummy_npc) #poring_wl18 4_ROPEPILE,1,0 +1@begi,146,39,6 duplicate(dummy_npc) #poring_wl19 4_ROPEPILE,1,0 +1@begi,146,40,6 duplicate(dummy_npc) #poring_wl20 4_ROPEPILE,1,0 +1@begi,146,41,6 duplicate(dummy_npc) #poring_wl21 4_ROPEPILE,1,0 + +// Second wall +1@begi,59,187,6 duplicate(dummy_npc) #poring_wl9 4_ROPEPILE,1,0 +1@begi,59,188,6 duplicate(dummy_npc) #poring_wl10 4_ROPEPILE,1,0 +1@begi,59,189,6 duplicate(dummy_npc) #poring_wl11 4_ROPEPILE,1,0 +1@begi,59,190,6 duplicate(dummy_npc) #poring_wl12 4_ROPEPILE,1,0 +1@begi,59,191,6 duplicate(dummy_npc) #poring_wl13 4_ROPEPILE,1,0 +1@begi,59,192,6 duplicate(dummy_npc) #poring_wl14 4_ROPEPILE,1,0 + +// Others +1@begi,154,100,6 duplicate(dummy_npc) #poring_wl1 4_ROPEPILE,1,0 +1@begi,154,101,6 duplicate(dummy_npc) #poring_wl2 4_ROPEPILE,1,0 +1@begi,154,102,6 duplicate(dummy_npc) #poring_wl3 4_ROPEPILE,1,0 +1@begi,154,103,6 duplicate(dummy_npc) #poring_wl4 4_ROPEPILE,1,0 +1@begi,154,104,6 duplicate(dummy_npc) #poring_wl5 4_ROPEPILE,1,0 +1@begi,154,105,6 duplicate(dummy_npc) #poring_wl6 4_ROPEPILE,1,0 +1@begi,154,106,6 duplicate(dummy_npc) #poring_wl7 4_ROPEPILE,1,0 +1@begi,154,107,6 duplicate(dummy_npc) #poring_wl8 4_ROPEPILE,1,0 + + +1@begi,1,1,5 script poring_village_1 -1,{ + end; +OnStart: + .@event$ = instance_npcname("poring_village_1") + "::OnMobDead"; + + areamonster 'map_begi$, 153,32, 171,32, "--en--", "MD_DROPS",7, .@event$; + areamonster 'map_begi$, 48,54, 71,57, "--en--", "MD_DROPS",8, .@event$; + areamonster 'map_begi$, 170,38, 189,38, "--en--", "MD_POPORING",8, .@event$; + areamonster 'map_begi$, 24,72, 28,92, "--en--", "MD_POPORING",8, .@event$; + areamonster 'map_begi$, 188,42, 191,58, "--en--", "MD_MARIN",8, .@event$; + areamonster 'map_begi$, 158,67, 174,68, "--en--", "MD_MARIN",3, .@event$; + areamonster 'map_begi$, 117,68, 131,68, "--en--", "MD_MARIN",4, .@event$; + areamonster 'map_begi$, 79,113, 92,113, "--en--", "MD_MARIN",6, .@event$; + + monster 'map_begi$,101,66, "--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,57,113, "--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,68,113, "--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,176,66, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,158,68, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,157,67, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,149,66, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,125,67, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,121,67, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,102,67, "--en--","MD_PORING",1, .@event$; + monster 'map_begi$,101,68, "--en--","MD_PORING",1, .@event$; + end; +OnMobDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_1") + "::OnMobDead" ) > 3) + end; + killmonster 'map_begi$, instance_npcname("poring_village_1") + "::OnMobDead"; + mapannounce 'map_begi$, "Emily: Wow~ You are quite strong! You defeated all these Porings!", bc_map, 0xFFFF00; + sleep 2000; + mapannounce 'map_begi$, "Emily: But the Poring looks unique somehow. Be careful!", bc_map, 0xFFFF00; + sleep 2000; + mapannounce 'map_begi$, "Emily: Ah, there is a unique force if you go near the column of blue light.", bc_map, 0xFFFF00; + sleep 2000; + monster 'map_begi$,132,103,"--en--","MD_GOLDRING",1, instance_npcname("poring_village_1") + "::OnBossDead"; + end; +OnBossDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_1") + "::OnBossDead" ) > 0) + end; + killmonster 'map_begi$, instance_npcname("poring_village_1") + "::OnBossDead"; + donpcevent instance_npcname("poring_village_2") + "::OnStart"; + sleep 6000; + // disablenpc instance_npcname("#poring_wl4"); + hideonnpc instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4"); + // disablenpc instance_npcname("#poring_wl5"); + hideonnpc instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5"); + disablenpc instance_npcname("#poring_wl1"); + disablenpc instance_npcname("#poring_wl2"); + disablenpc instance_npcname("#poring_wl3"); + disablenpc instance_npcname("#poring_wl6"); + disablenpc instance_npcname("#poring_wl7"); + disablenpc instance_npcname("#poring_wl8"); + setcell 'map_begi$,154,100,154,107,cell_walkable,1; + end; +} + +1@begi,1,1,5 script poring_village_2 -1,{ + end; +OnStart: + .@event$ = instance_npcname("poring_village_2") + "::OnMobDead"; + + monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,192,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,194,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,194,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,195,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,195,97,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,199,108,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,201,107,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,203,108,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,206,107,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,213,108,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,115,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,112,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,113,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,117,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,214,111,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,215,108,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,215,107,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,216,107,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,197,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,197,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,192,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,190,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,188,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,188,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,184,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,182,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,157,144,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,154,143,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,154,144,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,152,143,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,142,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,130,144,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,129,144,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,127,144,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,120,144,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,117,144,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,116,144,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,114,143,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,103,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,102,144,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,102,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,93,143,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,88,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,88,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,84,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,84,144,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,83,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,76,143,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,75,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,73,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,73,143,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,72,144,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,69,143,"--en--","MD_POPORING",1, .@event$; + monster 'map_begi$,64,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,59,143,"--en--","MD_PORING",1, .@event$; + monster 'map_begi$,59,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,52,144,"--en--","MD_DROPS",1, .@event$; + monster 'map_begi$,51,143,"--en--","MD_PORING",1, .@event$; + end; +OnMobDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_2") + "::OnMobDead" ) > 4) + end; + killmonster 'map_begi$, instance_npcname("poring_village_2") + "::OnMobDead"; + mapannounce 'map_begi$, "Emily: Hmm.. here is another Boss... It looks strong...", bc_map, 0xFFFF00; + sleep 2000; + mapannounce 'map_begi$, "Emily: I'm not good at battle.. Let me look for tresure first. See you soon~", bc_map, 0xFFFF00; + sleep 2000; + monster 'map_begi$,42,173,"--en--","MD_AMERING",1, instance_npcname("poring_village_2") + "::OnBossDead"; + end; +OnBossDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_2") + "::OnBossDead" ) > 0) + end; + killmonster 'map_begi$, instance_npcname("poring_village_2") + "::OnBossDead"; + donpcevent instance_npcname("poring_village_3") + "::OnStart"; + sleep 6000; + // disablenpc instance_npcname("#poring_wl10"); + hideonnpc instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10"); + // disablenpc instance_npcname("#poring_wl13"); + hideonnpc instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13"); + disablenpc instance_npcname("#poring_wl9"); + disablenpc instance_npcname("#poring_wl11"); + disablenpc instance_npcname("#poring_wl12"); + disablenpc instance_npcname("#poring_wl14"); + setcell 'map_begi$,59,187,59,197,cell_walkable,1; + end; +} + +1@begi,1,1,5 script poring_village_3 -1,{ + end; +OnStart: + .@event$ = instance_npcname("poring_village_3") + "::OnMobDead"; + + monster 'map_begi$,81,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,84,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,85,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,86,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,87,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,88,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,90,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,93,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,94,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,94,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,95,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,98,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,99,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,103,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,103,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,104,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,108,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,111,197,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,128,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,128,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,130,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,133,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,134,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,135,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,136,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,137,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,141,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,143,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,144,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,144,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,146,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,150,185,"--en--","MD_MARIN",1, .@event$; + monster 'map_begi$,150,185,"--en--","MD_MARIN",1, .@event$; + end; +OnMobDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_3") + "::OnMobDead" ) > 4) + end; + killmonster 'map_begi$, instance_npcname("poring_village_3") + "::OnMobDead"; + mapannounce 'map_begi$, "King Poring: Excuse me... But... Would you please get back now?...", bc_map, 0xFFFF; + sleep 2000; + mapannounce 'map_begi$, "Emily: What? Who are you?", bc_map, 0xFFFF00; + sleep 2000; + mapannounce 'map_begi$, "King Poring: I am the leader of this Poring Village. Sorry for the late introduction.", bc_map, 0xFFFF; + sleep 2000; + mapannounce 'map_begi$, "King Poring: Maybe there is some misunderstanding on our flyers. This village is so poor and has nothing valuable.", bc_map, 0xFFFF; + sleep 2000; + mapannounce 'map_begi$, "Emily: It's for me to judge after looking around more....", bc_map, 0xFFFF00; + sleep 2000; + mapannounce 'map_begi$, "King Poring: Ugh.... I don't like fighting but there is no choice.", bc_map, 0xFFFF; + sleep 2000; + monster 'map_begi$,182,194,"--en--","PORING",10; + for ( .@i = 0; .@i < 10; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MODE, (MD_CANMOVE | MD_LOOTER | MD_AGGRESSIVE | MD_CANATTACK); + setunitdata $@mobid[.@i], UMOB_SPEED, 200; + } + monster 'map_begi$,182,194,"--en--","MD_KING_PORING",1, instance_npcname("poring_village_3") + "::OnBossDead"; + end; +OnBossDead: + if (mobcount( 'map_begi$, instance_npcname("poring_village_3") + "::OnBossDead" ) > 0) + end; + killmonster 'map_begi$, instance_npcname("poring_village_3") + "::OnBossDead"; + enablenpc instance_npcname("#gift"); + end; +} + +1@begi,117,108,5 script Blue Light Column#1 4_ENERGY_BLUE,4,4,{ + end; +OnTouch: + switch( rand(3) ) { + case 0: + unittalk getcharid(3), "" + strcharinfo(0) + " : Ohhhhh!!! Release the parrot inside!!!!"; + break; + case 1: + unittalk getcharid(3), "" + strcharinfo(0) + " : I think it's ok to peck someone right now!!"; + break; + case 2: + unittalk getcharid(3), "" + strcharinfo(0) + " : Have you been bitten by a mad parrot?"; + break; + } + transform 1629,60000; + specialeffect2 EF_ENHANCE; + sc_start SC_GLASTHEIM_STATE,30000,20; + end; +} +1@begi,37,165,5 duplicate(Blue Light Column#1) Blue Light Column#2 4_ENERGY_BLUE,4,4 +1@begi,175,199,5 duplicate(Blue Light Column#1) Blue Light Column#3 4_ENERGY_BLUE,4,4 + + +1@begi,199,186,5 script #gift 4_GEFFEN_03,{ + mes "[Emily]"; + mes "You can have all of the items you find in this dungeon. I already have some."; + next; + if (isbegin_quest(12418) == 1) { + mes "[Emily]"; + mes "Ah, I found some items. Let me give you one of them. Just to celebrate your first visit!"; + next; + if (rand(100) < 50) + getitem 19238,1; // PoringTownOnion + else + getitem 19239,1; // PoringTownCarrot + completequest 12418; + } + mes "[Emily]"; + mes "I don't need this novice box. You can take it. Now, let's go out side!"; + close2; + getitem 23302,1; // PoringsPreciousBox + warp "prt_fild05",149,238; + end; +} diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf index 0003bd565e..79f3b90be2 100644 --- a/npc/re/scripts_athena.conf +++ b/npc/re/scripts_athena.conf @@ -86,6 +86,7 @@ npc: npc/re/instances/NightmarishJitterbug.txt npc: npc/re/instances/OctopusCave.txt npc: npc/re/instances/OldGlastHeim.txt npc: npc/re/instances/OsOccupation.txt +npc: npc/re/instances/PoringVillage.txt npc: npc/re/instances/Regenschirm.txt npc: npc/re/instances/RitualOfBlessing.txt npc: npc/re/instances/RoomOfConsciousness.txt diff --git a/src/map/itemdb.hpp b/src/map/itemdb.hpp index b8d5831b30..b385367e12 100644 --- a/src/map/itemdb.hpp +++ b/src/map/itemdb.hpp @@ -1025,6 +1025,7 @@ enum e_random_item_group { IG_S_SPELLCASTER_SHOES, IG_S_ABSORB_WEAPON, IG_S_ABSORB_SHIELD, + IG_PORINGSPRECIOUSBOX, IG_MAX, }; diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index a99fa0d88f..c5e8f797e1 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -5812,6 +5812,7 @@ export_constant(IG_S_SPELLCASTER_SHOES); export_constant(IG_S_ABSORB_WEAPON); export_constant(IG_S_ABSORB_SHIELD); + export_constant(IG_PORINGSPRECIOUSBOX); /* unit stop walking */ export_constant(USW_NONE);