diff options
-rw-r--r-- | db/pre-re/mob_skill_db.txt | 6 | ||||
-rw-r--r-- | db/quest_db.conf | 120 | ||||
-rw-r--r-- | db/re/mob_skill_db.txt | 6 | ||||
-rw-r--r-- | npc/instances/EndlessTower.txt | 2 | ||||
-rw-r--r-- | npc/quests/newgears/2010_headgears.txt | 1113 | ||||
-rw-r--r-- | npc/re/instances/WolfchevLaboratory.txt | 5 | ||||
-rw-r--r-- | npc/re/merchants/coin_exchange.txt | 4 | ||||
-rw-r--r-- | npc/re/quests/quests_eclage.txt | 90 | ||||
-rw-r--r-- | npc/scripts.conf | 1 | ||||
-rw-r--r-- | src/map/HPMmap.c | 1 | ||||
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/clif.c | 2 | ||||
-rw-r--r-- | src/map/pc.c | 6 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
14 files changed, 1305 insertions, 55 deletions
diff --git a/db/pre-re/mob_skill_db.txt b/db/pre-re/mob_skill_db.txt index cba21fc60..e854d4a6e 100644 --- a/db/pre-re/mob_skill_db.txt +++ b/db/pre-re/mob_skill_db.txt @@ -2805,9 +2805,9 @@ 1630,Bacsojin@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,0,,,,,,, 1630,Bacsojin@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,0,,,,,,6, 1630,Bacsojin@AL_TELEPORT,idle,26,1,1000,0,30000,yes,self,always,0,,,,,,, -1630,Bacsojin@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,, -1630,Bacsojin@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,, -1630,Bacsojin@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,no,self,slavele,1,1631,,,,,, +1630,Bacsojin@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,no,self,slavele,1,1519,,,,,, +1630,Bacsojin@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,no,self,slavele,1,1519,,,,,, +1630,Bacsojin@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,no,self,slavele,1,1519,,,,,, 1631,Chung E@CR_SHIELDCHARGE,attack,250,5,5000,0,5000,yes,target,always,0,,,,,,6, 1631,Chung E@RG_INTIMIDATE,attack,219,1,1000,1000,0,yes,target,always,0,,,,,,6, 1631,Chung E@PR_LEXDIVINA,chase,76,1,2000,0,5000,yes,target,always,0,,,,,,6, diff --git a/db/quest_db.conf b/db/quest_db.conf index 4d6a59759..379d2a96d 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -93,6 +93,97 @@ quest_db: ( Id: 1016 Name: "Gaining base levels" }, +// Solo Box Quest +{ + Id: 1100 + Name: "Solo at Sphinx Dungeon!" + Targets: ( + { + MobId: 2687 + Count: 20 + }, + ) +}, +{ + Id: 1101 + Name: "Solo at Sphinx Dungeon!" + Targets: ( + { + MobId: 1164 + Count: 20 + }, + ) +}, +{ + Id: 1102 + Name: "Solo at Clock Tower!" + Targets: ( + { + MobId: 1194 + Count: 40 + }, + ) +}, +{ + Id: 1103 + Name: "Solo at Clock Tower!" + Targets: ( + { + MobId: 1213 + Count: 30 + }, + ) +}, +{ + Id: 1104 + Name: "Solo at Louyang!" + Targets: ( + { + MobId: 1519 + Count: 20 + }, + ) +}, +{ + Id: 1105 + Name: "Solo at Louyang!" + Targets: ( + { + MobId: 1513 + Count: 50 + }, + ) +}, +{ + Id: 1106 + Name: "Solo at Amatsu Dungeon!" + Targets: ( + { + MobId: 1375 + Count: 20 + }, + ) +}, +{ + Id: 1107 + Name: "Solo at Amatsu Dungeon!" + Targets: ( + { + MobId: 1403 + Count: 40 + }, + ) +}, +{ + Id: 1108 + Name: "Solo at Louyang!" + Targets: ( + { + MobId: 1631 + Count: 20 + }, + ) +}, // Ropewa & Yuridi Quest { Id: 1109 @@ -2809,10 +2900,39 @@ quest_db: ( Id: 4267 Name: "????? ??" }, +// Frog Cap { Id: 5000 Name: "The Crow of the Fate - 7" }, +{ + Id: 5001 + Name: "King Froggie VII's revenge" + Targets: ( + { + MobId: 1037 + Count: 50 + }, + ) +}, +{ + Id: 5002 + Name: "The hero of the frogs" +}, +{ + Id: 5003 + Name: "Frog Hiding Skill" +}, +{ + Id: 5004 + Name: "Food Shortage" + Targets: ( + { + MobId: 1099 + Count: 50 + }, + ) +}, // Researcher's Quest { Id: 5016 diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt index c7f952199..ac78935ff 100644 --- a/db/re/mob_skill_db.txt +++ b/db/re/mob_skill_db.txt @@ -2736,9 +2736,9 @@ 1630,White Lady@NPC_CRITICALWOUND,attack,673,1,500,0,5000,yes,target,always,,,,,,,, 1630,White Lady@NPC_INVISIBLE,chase,353,1,2000,1000,30000,yes,self,always,,,,,,,29, 1630,White Lady@NPC_STOP,attack,342,1,2000,500,15000,yes,target,always,,,,,,,6, -1630,White Lady@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,, -1630,White Lady@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,, -1630,White Lady@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,yes,self,slavele,1,1631,,,,,, +1630,White Lady@NPC_SUMMONSLAVE,attack,196,3,10000,0,5000,yes,self,slavele,1,1519,,,,,, +1630,White Lady@NPC_SUMMONSLAVE,idle,196,3,10000,0,5000,yes,self,slavele,1,1519,,,,,, +1630,White Lady@NPC_SUMMONSLAVE,chase,196,3,10000,0,5000,yes,self,slavele,1,1519,,,,,, 1630,White Lady@PR_SANCTUARY,attack,70,10,2000,0,10000,yes,self,always,,,,,,,18, 1630,White Lady@WZ_WATERBALL,attack,86,5,1000,0,5000,yes,target,always,,,,,,,, 1630,White Lady@WZ_WATERBALL,chase,86,3,2000,1000,5000,yes,target,always,,,,,,,, diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt index 598ea98f5..ae3f55afb 100644 --- a/npc/instances/EndlessTower.txt +++ b/npc/instances/EndlessTower.txt @@ -861,7 +861,7 @@ function script F_Tower_Monster { areamonster .@map$,181,9,191,45,"Aliza",1737,10,.@label$; areamonster .@map$,181,9,191,45,"Zealotus",1200,5,.@label$; areamonster .@map$,181,9,191,45,"Alice",1275,5,.@label$; - areamonster .@map$,181,9,191,45,"Green Maiden",1631,10,.@label$; + areamonster .@map$,181,9,191,45,"Green Maiden",1519,10,.@label$; break; case 74: areamonster .@map$,267,9,277,45,"Dimik",1671,6,.@label$; diff --git a/npc/quests/newgears/2010_headgears.txt b/npc/quests/newgears/2010_headgears.txt new file mode 100644 index 000000000..c2a44eacb --- /dev/null +++ b/npc/quests/newgears/2010_headgears.txt @@ -0,0 +1,1113 @@ +//===== Hercules Script ====================================== +//= 2010 Headgear Quest +//===== By: ================================================== +//= Dastgir +//===== Current Version: ===================================== +//= 1.0 +//===== Description: ========================================= +//= Quests For Headgears: +//= Flower Of Fairy, NeckTie, Hair Brush +//= Status Of Baby Angel, Frog Cap, Solo Play Box +//===== Additional Comments: ================================= +//= 1.0 Converted from the official Aegis script. [Dastgir] +//============================================================ + +gonryun,149,189,0 script Yotang#Flower_Of_Fairy 1_M_04,{ + mes "[Yotang]"; + mes "There lives a fairy on the 3rd floor of Gonryun."; + mes "She is so famous for her beauty"; + mes "that she even got a fan club."; + next; + mes "[Yotang]"; + mes "Of course, I am the master of the fan club."; + mes "How about joining the fairy fan club?"; + next; + if (select("I'm not that interested!!:I'll join it right away!!") == 1) { + mes "[Yotang]"; + mes "What! I'm going to tell on you!"; + close; + } + if ((countitem(Limpid_Celestial_Robe) > 99) && (countitem(Soft_Silk_Cloth) > 99) && countitem(Wedding_Bouquet) && countitem(Violet_Dyestuffs) && countitem(Bandana)) { + mes "[Yotang]"; + mes "Oh, aren't those....!"; + mes "the materials for the Flower of Fairy?"; + mes "Have we met before? You already know everything..."; + next; + mes "[Yotang]"; + mes "Anyway, do you want me to make the Flower of Fairy?"; + next; + mes "[Yotang]"; + mes "^FF0000Please be aware that^000000"; + mes "^FF0000the refinement on the matereials will all disapper^000000"; + mes "^FF0000if you once combine those.^000000"; + next; + if (select("No, next time.:Make it right now!!") == 1) { + mes "[Yotang]"; + mes "You'll regret it!"; + close; + } + mes "[Yotang]"; + mes "You're speedy!"; + mes "You deserve to be a master of the fanclub for the next term."; + next; + emotion e_swt; + mes "Combining... ... ..."; + next; + //Double-check the materials + if ((countitem(Limpid_Celestial_Robe) < 100) || (countitem(Soft_Silk_Cloth) < 100) || !countitem(Wedding_Bouquet) || !countitem(Violet_Dyestuffs) || !countitem(Bandana)) { + mes "[Yotang]"; + mes "Huh? You don't have enough"; + mes "materials for it.."; + mes "Aren't you wearing Bandana?"; + mes "Check it out!"; + next; + mes "[Yotang]"; + mes "Bring me all the materials,"; + mes "If you want to get the Flower of Fairy."; + next; + mes "[Yotang]"; + mes "If you bring me ^0000FF100 Limpid Celestial Robes, 100 Soft Silk Cloth,"; + mes "1 Wedding Bouquet, 1 Violet Dyestuffs"; + mes "and ^0000FF1 Bandana^000000 which you can find at a store,"; + mes "I will make you a ^0000FFFlower of Fairy^000000."; + close; + } + // Checking weight + if ((MaxWeight-Weight) < 200) { + mes "[Yotang]"; + mes "Your bag is too heavy, isn't it?"; + mes "Come to me again"; + mes "after emptying your bag."; + close; + } + else if (checkweight(Flower_Of_Fairy,1) == 0) { + mes "- Wait !! -"; + mes "- You have too many items, so it's -"; + mes "- impossible to have more. -"; + mes "- Come to me again -"; + mes "- after emptying some of it. -"; + close; + } + mes "[Yotang]"; + mes "Here, the Flower of Fairy."; + delitem Limpid_Celestial_Robe,100; //Limpid_Celestial_Robe + delitem Soft_Silk_Cloth,100; //Soft_Silk_Cloth + delitem Wedding_Bouquet,1; //Wedding_Bouquet + delitem Violet_Dyestuffs,1; //Violet_Dyestuffs + delitem Bandana,1; //Bandana + getitem Flower_Of_Fairy,1; //Flower_Of_Fairy + emotion e_no1; + next; + mes "[Yotang]"; + mes "See you on the fan meeting!"; + close; + } + mes "[Yotang]"; + mes "You can meet the fairy soon"; + mes "for there will be a fan meeting"; + mes "in the near future."; + mes "The Flower of Fairy is necessary"; + mes "for joining the fan meeting. Everyone wears it."; + next; + mes "[Yotang]"; + mes "If you bring me some materials"; + mes "I'll make it for you."; + next; + mes "[Yotang]"; + mes "I need ^0000FF100 Limpid Celestial Robes, 100 Soft Silk Cloth,"; + mes "1 Wedding Bouquet, 1 Violet Dyestuffs"; + mes "and ^0000FF1 Bandana^000000 which you can find at a store,"; + next; + mes "[Yotang]"; + mes "If you bring me ^0000FF100 Limpid Celestial Robes, 100 Soft Silk Cloth,"; + mes "1 Wedding Bouquet, 1 Violet Dyestuffs"; + mes "and ^0000FF1 Bandana^000000 which you can find at a store,"; + mes "I will make you a ^0000FFFlower of Fairy^000000."; + next; + mes "[Yotang]"; + mes "^FF0000Please be aware that^000000"; + mes "^FF0000the refinement on the matereials will all disapper^000000"; + mes "^FF0000if you once combine those.^000000"; + next; + if (select("I won't do it.:Here, I have the materials!")==1) { + mes "[Yotang]"; + mes "You'll regret it!"; + close; + } + mes "[Yotang]"; + mes "Huh? Are you kidding me?"; + next; + mes "[Yotang]"; + mes "I need ^0000FF100 Limpid Celestial Robes, 100 Soft Silk Cloth,"; + mes "1 Wedding Bouquet, 1 Violet Dyestuffs"; + mes "and ^0000FF1 Bandana^000000 which you can find at a store"; + mes "to make a ^0000FFFlower of Fairy^000000."; + close; +} + +// 2. Making the new headgear Necktie(5442) + +lhz_in02,276,281,1 script Drunken Man#Necktie 4_M_ALCHE_A,{ + mes "[Drunken Man]"; + mes "Hey.. you wanna fight?!"; + next; + mes "He seems to be drunken badly. What should I do?"; + next; + if (select("Just ignore him.:Fight!") == 1) { + mes "[Drunken Man]"; + mes "Why are you ignoring me?"; + mes "Are you afraid of me?"; + close; + } + // Checking player's level + if (BaseLevel < 65) { + mes "[Drunken Man]"; + mes "What... you're weaker than me."; + mes "Go and reach the higher level!"; + emotion e_go; + close; + } + mes "[Drunken Man]"; + mes "Hold! I need some armor to wear."; + mes "That's it, Necktie, Necktie..."; + next; + mes "[Drunken Man]"; + mes "Once I wear the Necktie on my head,"; + mes "I will be no match for you!"; + mes "You must be nervousˇ¦"; + mes "Hmmˇ¦ where is the Necktie?"; + next; + // If having the materials + if ((countitem(Cobaltblue_Dyestuffs) > 0) && (countitem(Oil_Paper) > 29) && (countitem(Transparent_Cloth) > 99) && (countitem(Spool) > 19)) { + mes "[Drunken Man]"; + mes "Oh, you're having the materials for Necktie! give them to me!!"; + next; + if (select("No way!:Here you are.")==1) { + mes "[Drunken Man]"; + mes "Ohh, you are scared!"; + mes "I won again!!"; + close; + } + mes "[Drunken Man]"; + mes "Great, wait for a moment!"; + next; + mes "Combining... ch...ch... ..."; + emotion e_swt; + next; + mes "[Drunken Man]"; + mes "Drunk...drunk.... Zzzzz..."; + emotion e_what,1; + next; + //Double-check the materials + if ((countitem(Cobaltblue_Dyestuffs) > 0) && (countitem(Oil_Paper) > 29) && (countitem(Transparent_Cloth) > 99) && (countitem(Spool) > 19)) { + // Checking weight + if ((MaxWeight - Weight) < 100) { + mes "Necktie is heavier than I thought."; + mes "Seems like the very legendary Necktie."; + close; + } + else if (checkweight(Necktie,1) == 0) { + mes "- Wait !! -"; + mes "- You have too many items, so it's -"; + mes "- impossible to have more. -"; + mes "- Come to me again -"; + mes "- after emptying some of it. -"; + close; + } + mes "He zonked out as soon as"; + mes "he finished it."; + mes "Let's just take the Necktie."; + delitem Cobaltblue_Dyestuffs,1; //Cobaltblue_Dyestuffs + delitem Oil_Paper,30; //Oil_Paper + delitem Transparent_Cloth,100; //Transparent_Cloth + delitem Spool,20; //Spool + getitem Necktie,1; //Necktie + close; + } + mes "[Drunken Man]"; + mes "Huh? Where are all the materials gone?"; + mes "Did you take it back that you're so afraid of me?"; + close; + } + mes "[Drunken Man]"; + mes "Hey, go and get"; + mes "^FF00001 Cobaltblue Dyestuff, 30 Oil Papers, 100 Transparent Cloth, 20 Spools^000000!"; + next; + mes "[Drunken Man]"; + mes "I will beat you off wearing the legendary Necktie!"; + next; + if (select("I won't.:Let's go and get them.") == 1) { + mes "[Drunken Man]"; + mes "Are you dropping out?"; + mes "Did I win again?"; + close; + } + mes "[Drunken Man]"; + mes "I'm telling you once more"; + mes "for you might forget it, dumbhead!"; + next; + mes "[Drunken Man]"; + mes "^FF00001 Cobaltblue Dyestuff, 30 Oil Papers, 100 Transparent Cloth, 20 Spools^000000!"; + mes "Hurry! I'll be futzing around with others."; + emotion e_go; + close; +} + +// 3. Making the new headgear Hair Brush(5444) +comodo,236,164,0 script Hat Girl#Hair_Brush 1_F_04,{ + mes "[Hat Girl]"; + mes "Isn't the unique hat much better"; + mes "than the common hairbands?"; + next; + if (select("I still prefer hairbands!:Hat is the best!") == 1) { + mes "[Hat Girl]"; + mes "Wear your boring hairband for the whole lifetime!"; + emotion e_pif; + close; + } + mes "[Hat Girl]"; + mes "You have a good sense!"; + mes "I thought I would make"; + mes "a trendy hat."; + next; + mes "[Hat Girl]"; + mes "I will give you an honor,"; + mes "to be a fashion superstar,"; + mes "if you bring me the materials for it."; + next; + if ((countitem(Mixture) > 0) && (countitem(Scarlet_Dyestuffs) > 0) && (countitem(Solid_Shell) > 49) && (countitem(Elunium) > 4) && (countitem(Axe_) > 0)) { + mes "[Hat Girl]"; + mes "Oh! you're bringing ^0000FFthe materials for Hair Brush^000000."; + mes "Do you want me to make it now?"; + next; + if (select("I think the hairband is better...:Yes, please make it!") == 1) { + mes "[Hat Girl]"; + mes "Wear your boring hairband for the whole lifetime!"; + emotion e_pif; + close; + } + mes "[Hat Girl]"; + mes "Okay, I'll do it right away!"; + next; + mes "Ch ch ch... combining...ch chˇ¦"; + emotion e_swt2,1; + next; + mes "[Hat Girl]"; + mes "Here, it's done!"; + mes "Now you're the fashionista!"; + next; + //Double-check the materials + if ((countitem(Mixture) > 0) && (countitem(Scarlet_Dyestuffs) > 0) && (countitem(Solid_Shell) > 49) && (countitem(Elunium) > 4) && (countitem(Axe_) > 0)) { + // Checking weight + if ((MaxWeight - Weight) < 100) { + mes "[Hat Girl]"; + mes "You're carrying too much stuff."; + mes "Come again after emptying your bag."; + close; + } + else if (checkweight(Status_Of_Baby_Angel,1) == 0) { + mes "- Wait !! -"; + mes "- You have too many items, so it's -"; + mes "- impossible to have more. -"; + mes "- Come to me again -"; + mes "- after emptying some of it. -"; + close; + } + mes "[" + strcharinfo(0) + "]"; + mes "I got the Hair Brush."; + mes "...but it makes me sad."; + delitem Mixture,1; //Mixture + delitem Scarlet_Dyestuffs,1; //Scarlet_Dyestuffs + delitem Solid_Shell,50; //Solid_Shell + delitem Elunium,5; //Elunium + delitem Axe_,1; //Axe_ + getitem Hair_Brush,1; //Hair_Brush + close; + } + mes "[Hat Girl]"; + mes "Huh? Don't you want to be"; + mes "the best fashionista?"; + mes "You don't have enough materials?"; + close; + } + mes "[Hat Girl]"; + mes "To make the latest style ^0000FFHair_Brush^000000,"; + mes "I need ^0000FF1 Mixture, 1 Scarlet Dyestuffs,"; + mes "50 Solid Shells, 5 Eluniums,^000000"; + mes "also 1 ^0000FFAxe^000000 with 4 sockets on it."; + next; + mes "[Hat Girl]"; + mes "What are you doing? Hurry!"; + next; + mes "[Hat Girl]"; + mes "Here is one tip for you."; + mes "You can easily get Solid Shells and Elunium from the monsters."; + close; +} + +// 4. Making the new headgear Statue Of Baby Angel(5443) +alberta,151,78,0 script Bebete#Baby_Angel_Status 4W_KID,{ + // Check if wearing Ear_Of_Angel's_Wing, Angelic_Chain, Flying_Angel + if (!isequipped(Ear_Of_Angel's_Wing) && !isequipped(Angelic_Chain) && !isequipped(Flying_Angel)) { + mes "[Bebete]"; + mes "A fake angel? Go away!!"; + next; + mes "[Bebete]"; + mes "The real angel has"; + mes "the wings on the head!"; + close; + } + if (BaseLevel < 65) { + mes "[Bebete]"; + mes "A fake angel? Go away!"; + next; + mes "[Bebete]"; + mes "The real angel"; + mes "is not as weak as you."; + close; + } + // If wearing Status_Of_Baby_Angel + if (isequipped(Status_Of_Baby_Angel) > 0) { + mes "[Bebete]"; + mes "Oh, the angel came again."; + mes "Are you quite satisfied with ^FF0000Statue Of Baby Angel^000000, aren't you?"; + close; + } + if ((countitem(Holy_Water) > 0) && (countitem(Feather_Of_Birds) > 499) && (countitem(Muscovite) > 9) && (countitem(Spirit_Chain) > 0) && (countitem(Shining_Stone) > 0)) { + mes "[Bebete]"; + mes "Ah! Hey, angel~ angel~"; + next; + mes "[Bebete]"; + mes "Please show me the Statue of Baby Angel!"; + mes "I heard every angel has it!"; + next; + select("Statue of Baby Angel?"); + mes "[Bebete]"; + mes "Did you lose it?"; + mes "Do you want me to make it for you?"; + next; + if (select("No, thanks.:Yes, I want it now.") == 1) { + mes "[Bebete]"; + mes "Oh... it's not easy to make a living!"; + close; + } + // Check weight + mes "[Bebete]"; + mes "Wow, you already know all the materials, angel."; + emotion e_lv2; + next; + mes "[Bebete]"; + mes "You're lucky. I have one statue on going."; + mes "So you don't need to wait for long."; + next; + if ((countitem(Holy_Water) > 0) && (countitem(Feather_Of_Birds) > 499) && (countitem(Muscovite) > 9) && (countitem(Spirit_Chain) > 0) && (countitem(Shining_Stone) > 0)) { + // Check weight + if ((MaxWeight - Weight) < 600) { + mes "[Bebete]"; + mes "What are you carrying that much, angel?"; + mes "I can't give you the item"; + mes "because your bag is too full."; + close; + } + else if (checkweight(Status_Of_Baby_Angel,1) == 0) { + mes "- Wait !! -"; + mes "- You have too many items, so it's -"; + mes "- impossible to have more. -"; + mes "- Come to me again -"; + mes "- after emptying some of it. -"; + close; + } + mes "I got the ^FF0000Statue of Baby Angel^000000."; + delitem Feather_Of_Birds,500; //Feather_Of_Birds + delitem Holy_Water,1; //Holy_Water + delitem Muscovite,10; //Muscovite + delitem Spirit_Chain,1; //Spirit_Chain + delitem Shining_Stone,1; //Shining_Stone + getitem Status_Of_Baby_Angel,1; //Status_Of_Baby_Angel + next; + mes "[Bebete]"; + mes "See you again, my angel~!"; + emotion e_thx; + next; + mes "[" + strcharinfo(0) + "]"; + mes "... ..."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "Hmm... I guess I was fooled by that little kid."; + close; + } + mes "[Bebete]"; + mes "Hey, I don't see"; + mes "any materials in your bag.."; + emotion e_sob; + close; + } + mes "[Bebete]"; + mes "Hey, angel..."; + next; + mes "[Bebete]"; + mes "Wow, the angel!"; + emotion e_omg; + next; + mes "[Bebete]"; + mes "Are you a real angel? Have you been to heaven?"; + next; + if (select("What a bullshit!:Let's keep the childhood innocence!") == 1) { + mes "[" + strcharinfo(0) + "]"; + mes "Angel and heaven? It's all made up! "; + next; + mes "[" + strcharinfo(0) + "]"; + mes "There's nothing. Everything is lie!"; + emotion e_gg,1; + next; + mes "[Bebete]"; + mes "You're a devil! a monster! an idiot!"; + emotion e_sigh; + close; + } + mes "[" + strcharinfo(0) + "]"; + mes "Of course. I used to dance with the dragon and zebra"; + mes "on the vanilla-taste clouds."; + next; + mes "[Bebete]"; + mes "That's just what I've been imagining!"; + next; + mes "[Bebete]"; + mes "Please show me the Statue of Baby Angel!"; + mes "I heard every angel has it!"; + next; + mes "[Bebete]"; + mes "Oops, did you lose it?"; + mes "Do you want me to make one for you?"; + next; + mes "[Bebete]"; + mes "I made it several times before"; + mes "for the angels like you."; + next; + mes "[Bebete]"; + mes "I can make it with ^FF0000 500 Feather Of Birds, 1 Holy Water, 10 Muscovite, 1 Spirit Chain and 1 Shining Stone^000000."; + next; + mes "[Bebete]"; + mes "Okay, hurry!"; + close; + end; +} + +// 5. Making the new headgear Frog_Cap(5447) + +gef_fild07,108,161,4 script Roda Frog#Frog_Cap RODA_FROG,1,1,{ + if (2009_hat == 0) { + mes "[???]"; + mes "Hmm..Hm.."; + mes "It seems my transformation into the child's appearance is succeessful."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "... ... ... ..."; + next; + mes "[???]"; + mes "Human! I am here to ask you some help."; + next; + if (BaseLevel < 65) { + mes "[???]"; + mes "... ... ..."; + next; + mes "[???]"; + mes "I am the great king Froggie Vll!"; + next; + mes "[King Froggie Vll]"; + mes "but I think you're not strong enough to help us."; + mes "Go and train more!"; + next; + mes "[King Froggie Vll]"; + mes "Over lvl 65 human will be fine for us."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + mes "[???]"; + mes "I am the great king, Froggie Vll.."; + mes "I need your help!"; + next; + if (select("Just ignore it.:Let's help him.") == 1) { + mes "[" + strcharinfo(0) + "]"; + mes "Talking frog..."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "Now I've seen everything."; + next; + mes "[King Froggie Vll]"; + mes "Croaking...Croaking..."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + mes "[" + strcharinfo(0) + "]"; + mes "What can I help you?"; + next; + mes "[King Froggie Vll]"; + mes "Our great frog race is now endangered because many travellers came here and take our eggs as a kind of souvenirs. I even heard there are many left on the ground here and there, so I need your help. Please bring back ^FF0000100 Frogspawn^000000."; + setquest 5000; + 2009_hat = 1; + next; + mes "[" + strcharinfo(0) + "]"; + mes "Sure, I will."; + next; + mes "[King Froggie Vll]"; + mes "I will be waiting for you!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (2009_hat == 1) { + if (countitem(Spawn) < 100) { + mes "[King Froggie Vll]"; + mes "What are you doing here?"; + mes "Go and get ^FF0000100 Frogspawn^000000!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + mes "[King Froggie Vll]"; + mes "Oh, you brought all of them!"; + next; + mes "[King Froggie Vll]"; + mes "Thank you so much, " + strcharinfo(0) + "."; + emotion e_thx; + next; + mes "[King Froggie Vll]"; + mes "By the way, we have another urgent matter. So I would ask you one more help."; + next; + mes "[King Froggie Vll]"; + mes "Frogs are healthy food to the snakes."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "I know well."; + next; + mes "[King Froggie Vll]"; + mes "Well, that's good. Aren't you feel sorry for our race?"; + next; + mes "[King Froggie Vll]"; + mes "So, I hereby ask you to take revenge on them. Kill ^FF000050 Side Winder^000000 for us."; + delitem Spawn,100; //Spawn + changequest 5000,5001; + 2009_hat = 2; + next; + mes "[King Froggie Vll]"; + mes "I'll be waiting for your news!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (2009_hat == 2) { + if (questprogress(5001,HUNTING) == 1) { + mes "[King Froggie Vll]"; + mes "I'm waiting for your good news."; + mes "It would be a piece of cake for you"; + mes "to kill ^FF000050 Side Winders^000000. Keep it up!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (questprogress(5001,HUNTING) == 2) { + mes "[" + strcharinfo(0) + "]"; + mes "I'm back."; + next; + mes "[King Froggie Vll]"; + mes "You seemingly killed all the Side Winders!"; + next; + mes "[King Froggie Vll]"; + mes "You became an example for the young frogs. Thank you again."; + emotion e_thx; + next; + mes "[King Froggie Vll]"; + mes "Therefore, I'm considering adding your outstanding exploit to our frog's history book. But I need your evidence for your work."; + next; + mes "[King Froggie Vll]"; + mes "Please bring me ^FF0000 100 ^000000 ^FF0000Poisonous Canines^000000 from the snakes."; + changequest 5001,5002; + 2009_hat = 3; + next; + mes "[" + strcharinfo(0) + "]"; + mes "I'm happy to be added in the history book. I'll go and get them."; + next; + mes "[King Froggie Vll]"; + mes "Obedient, hard-working... I hope I have a loyal frog like you."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + close; + } + else if (2009_hat == 3) { + if (countitem(Posionous_Canine) < 100) { + mes "[King Froggie Vll]"; + mes "How about ^FF0000100 Poisonous Canines^000000?"; + mes "Hurry, it's a rare opportunity to be added in the frog histroy book!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + mes "[King Froggie Vll]"; + mes "Oh, you brought Poisonous Canines! Now, I'm able to put you in the frog history book officially."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "That's good for me."; + next; + mes "[King Froggie Vll]"; + mes "I have a better news!"; + next; + mes "[King Froggie Vll]"; + mes "I found a great method to keep our race while I was looking up the history book!"; + next; + mes "[King Froggie Vll]"; + mes "The answer was in the frog history book. In the old days, the great King Froggie lll made a secret medicine enabling us to use a hiding skill from the snakes."; + next; + mes "[King Froggie Vll]"; + mes "I should have known this earlier..."; + mes "Please get me ^FF000050 Scaled Skins^000000."; + delitem Posionous_Canine,100; //Posionous_Canine + changequest 5002,5003; + 2009_hat = 4; + next; + mes "[King Froggie Vll]"; + mes "It's not easy to get, but I'm sure you can do it."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (2009_hat == 4) { + if (countitem(Scales_Shell) < 50) { + mes "[King Froggie Vll]"; + mes "Still here? Go and get ^FF000050 Scaled Skins^000000! Please hurry!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + mes "[King Froggie Vll]"; + mes "Excellent!"; + mes "You're like the great King Froggie lll in his young days!"; + next; + mes "[King Froggie Vll]"; + mes "You are already the hero for our frogs! If I have a child, I would marry you up with my child."; + next; + mes "[" + strcharinfo(0) + "]"; + mes "Ah.. No, thanks."; + mes "^FF0000(Are you telling me to marry with A Frog???)^000000"; + next; + mes "[King Froggie Vll]"; + mes "Thanks to you, the population of frog has increased but we're short of food."; + next; + mes "[King Froggie Vll]"; + mes "The best food for us is ^FF0000Argiope^000000."; + next; + mes "[King Froggie Vll]"; + mes "Now, what are you doing, our hero?"; + mes "Go and get ^FF000050 Argiopes^000000!"; + delitem Scales_Shell,50; //Scales_Shell + 2009_hat = 5; + changequest 5003,5004; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + + } + else if (2009_hat == 5) { + if (questprogress(5004,HUNTING) == 1) { + mes "[King Froggie Vll]"; + mes "My hero, are you going to starve us to death?"; + mes "Go and bring us ^FF000050 Argiopes^000000!"; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (questprogress(5004,HUNTING) == 2) { + mes "[King Froggie Vll]"; + mes "I think I saw you a while ago, but now you became the hero for the frogs..."; + next; + mes "[King Froggie Vll]"; + mes "It was really lucky for me to ask you a favor."; + next; + // checking weight + if ((MaxWeight - Weight) < 500) { + mes "[King Froggie Vll]"; + mes "I'd like to give you a reward, our hero. But your bag is now too heavy."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + else if (checkweight(Frog_Cap,1) == 0) { + mes "- Wait !! -"; + mes "- You have too many items, so it's -"; + mes "- impossible to have more. -"; + mes "- Come to me again -"; + mes "- after emptying some of it. -"; + close; + } + mes "[King Froggie Vll]"; + mes "Frogs, do you have any objection"; + mes "to give our hero, " + strcharinfo(0) + ""; + mes "a Frog Hat which is one of our precious treasures?"; + next; + mes "[Sounds from somewhere]"; + mes "Croak...croak..."; + mes "croooooaaaaak~~~"; + mes "Croak croak"; + next; + mes "[King Froggie Vll]"; + mes "Hmm, there is no objection."; + next; + mes "[King Froggie Vll]"; + mes "I hearby give " + strcharinfo(0) + ", our hero, this Frog Hat."; + specialeffect2 EF_MAPPILLAR2; + specialeffect2 EF_BLESSING; + erasequest 5004; + 2009_hat = 6; + getitem Frog_Cap,1; //Frog_Cap + next; + mes "[King Froggie Vll]"; + mes "You are always welcome."; + mes "Visit here at any time."; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + } + else if (2009_hat == 6) { + mes "[King Froggie Vll]"; + mes "All the frogs in the world, praise " + strcharinfo(0) + ", our eternal hero!"; + emotion e_thx; + close2; + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + end; + } + end; + +OnInit: + setnpcdisplay "Roda Frog#Frog_Cap",RODA_FROG; +end; + +OnEnable: + setnpcdisplay "Roda Frog#Frog_Cap",4_M_KID2; + end; + +OnDisable: + hideonnpc "Roda Frog#Frog_Cap"; + initnpctimer; + end; + +OnReset: + setnpcdisplay "Roda Frog#Frog_Cap",RODA_FROG; + hideoffnpc "Roda Frog#Frog_Cap"; + end; + +OnTimer2000: + donpcevent "Roda Frog#Frog_Cap::OnReset"; + stopnpctimer; + end; + +OnTouch: + mes "There is a frog. What should I do?"; + next; + if (select("Throw it a stone.:Have a conversation.") == 1) { + donpcevent "Roda Frog#Frog_Cap::OnDisable"; + mes "Ouch~"; + close; + } + donpcevent "Roda Frog#Frog_Cap::OnEnable"; + if (2009_hat > 0) { + emotion e_dots,1; + mes "[" + strcharinfo(0) + "]"; + mes "It's so amazing to see"; + mes "the frog which transforms itself."; + close; + } + emotion e_omg,1; + mes "[" + strcharinfo(0) + "]"; + mes "Oh my.. the frog transformed into a child..."; + close; +} + + +// 6. Making the new headgear Solo Playing Box 1,2 ()5448,5449) +alberta,120,206,3 script Alonie#Solo_Play_Box 4_M_UMKID,{ + if (2009_1_hat == 0) { + mes "[Alonie]"; + mes "I am an expert at playing alone."; + mes "I'm trying my best to play alone!"; + next; + mes "[Alonie]"; + mes "HuHu, Yapyap!"; + mes "I can feel your admiration for me."; + mes "Wanna be my student?"; + next; + if (select("You're out of your mind!:Please let me be your disciple!") == 1) { + mes "[Alonie]"; + mes "Yes, I'm out of my mind."; + mes "Huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "I can feel you are lack of affection. Okay!"; + mes "Now, let's start the training!"; + next; + mes "[Alonie]"; + mes "The special training, to play alone in Sphinx Dungeon!"; + mes "For make it"; + mes "the fruitful training,"; + mes "Get around and kill"; + mes "^FF000020 Zeroms, 20 Requiems^000000!"; + mes "Hurry!"; + next; + if (select("What a bullshit!:Let's go!") == 1) { + mes "[Alonie]"; + mes "Of course, I don't care."; + mes "Huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "Hurry up, my student."; + mes "I am so capricious"; + mes "so I don't know what I will"; + mes "give you as a reward!"; + setquest 1100; + setquest 1101; + 2009_1_hat = 1; + close; + } + else if (2009_1_hat == 1) { + if ((questprogress(1100,HUNTING) == 2) && (questprogress(1101,HUNTING) == 2)) { + mes "[Alonie]"; + mes "Already finished?"; + mes "Good, here is the next training"; + mes "to be a playing-alone expert!"; + next; + mes "[Alonie]"; + mes "The special training, to play alone at Clock Tower!"; + mes "For make it"; + mes "the fruitful training,"; + mes "Get around and kill"; + mes "^FF000040 Arclouses and 30 High Orcs^000000"; + next; + if (select("What a bullshit!:Let's go!") == 1) { + mes "[Alonie]"; + mes "Of course, I don't care."; + mes "Huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "Hurry up, my student."; + mes "I am so capricious"; + mes "so I don't know what I will"; + mes "give you as a reward!"; + changequest 1100,1102; + changequest 1101,1103; + 2009_1_hat = 2; + close; + } + mes "[Alonie]"; + mes "Hmm, it's not enough."; + mes "Playing alone is not that easy!"; + mes "Go and kill"; + mes "^FF000020 Zeroms, 20 Requiems^000000!"; + close; + } + else if (2009_1_hat == 2) { + if ((questprogress(1102,HUNTING) == 2) && (questprogress(1103,HUNTING) == 2)) { + mes "[Alonie]"; + mes "You're really good at playing alone...!"; + mes "Are you lonely?"; + mes "Well, here is the next training"; + mes "to be a playing-alone expert!"; + next; + mes "[Alonie]"; + mes "The special training, to play alone in Louyang!"; + mes "For make it"; + mes "the fruitful training,"; + mes "Get around and kill"; + mes "^FF000020 Chung E and 50 Civil Servant^000000!"; + next; + if (select("What a bullshit!:Let's go!") == 1) { + mes "[Alonie]"; + mes "Of course, I don't care."; + mes "Huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "Hurry up, my student."; + mes "I am so capricious"; + mes "so I don't know what I will"; + mes "give you as a reward!"; + changequest 1102,1108; + changequest 1103,1105; + 2009_1_hat = 3; + close; + } + mes "[Alonie]"; + mes "Hmm, It's not enough."; + mes "Playing alone is not that easy!"; + mes "Go and kill"; + mes "^FF000040 Arclouses and 30 High Orcs^000000!"; + close; + + } + else if (2009_1_hat == 3) { + if ((questprogress(1108,HUNTING) == 2) && (questprogress(1105,HUNTING) == 2)) { + mes "[Alonie]"; + mes "Great job."; + mes "How lonely you are!"; + mes "Okay, here is the last training"; + mes "to be a real playing-alone expert!"; + next; + mes "[Alonie]"; + mes "The special training, to play alone in Amatsu Dungeon!"; + mes "For make it"; + mes "the fruitful training,"; + mes "Get around and kill"; + mes "^FF000020 The Papers and 40 Antique Firelocks^000000!"; + next; + if (select("What a bullshit!:Let's go!") == 1) { + mes "[Alonie]"; + mes "Of course, I don't care."; + mes "huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "Hurry up, my student!"; + mes "I am so capricious"; + mes "so I don't know what I will"; + mes "give you as a reward!"; + changequest 1108,1106; + changequest 1105,1107; + 2009_1_hat = 4; + close; + } + else if ((questprogress(1104,HUNTING) == 2) && (questprogress(1105,HUNTING) == 2)) { + mes "[Alonie]"; + mes "Great job."; + mes "How lonely you are!"; + mes "Okay, here is the last training"; + mes "to be a real playing-alone expert!"; + next; + mes "[Alonie]"; + mes "The special training, to play alone in Amatsu Dungeon!"; + mes "For make it"; + mes "the fruitful training,"; + mes "Get around and kill"; + mes "^FF000020 The Papers and 40 Antique Firelocks^000000!"; + next; + if (select("What a bullshit!:Let's go!") == 1) { + mes "[Alonie]"; + mes "Of course, I don't care."; + mes "huhu, Yapyap!"; + close; + } + mes "[Alonie]"; + mes "Hurry up, my student!"; + mes "I am so capricious"; + mes "so I don't know what I will"; + mes "give you as a reward!"; + changequest 1104,1106; + changequest 1105,1107; + 2009_1_hat = 4; + close; + } + mes "[Alonie]"; + mes "Hmm, It's not enough."; + mes "Playing alone is not that easy!"; + mes "Go and kill"; + mes "^FF000020 Chung E and 50 Civil Servant^000000!"; + if (questprogress(1104,HUNTING) == 1) { + erasequest 1104; + setquest 1108; + } + close; + } + else if (2009_1_hat == 4) { + if ((MaxWeight - Weight) < 300) { + mes "[Alonie]"; + mes "Playing outside with this heavy bag?"; + mes "You are the real"; + mes "expert to play alone!"; + next; + mes "[Alonie]"; + mes "If you want the reward, empty your bag, first!"; + close; + } + if ((questprogress(1106,HUNTING) == 2) && (questprogress(1107,HUNTING) == 2)) { + mes "[Alonie]"; + mes "Finally you did it."; + mes "My affection-lacked student!"; + mes "This is the end of your training!"; + next; + if (gettime(3) < 12) { + if (checkweight(Solo_Play_Box1,1) == 0) { + mes "[Alonie]"; + mes "Playing outside with this heavy bag?"; + mes "You are the real"; + mes "expert to play alone!"; + next; + mes "[Alonie]"; + mes "If you want the reward, empty your bag, first!"; + close; + } + mes "[Alonie]"; + mes "Here! The solo play box"; + mes "the most effective at AM!"; + mes "After putting on this box,"; + mes "you're the best lonely being!"; + next; + mes "[Alonie]"; + emotion e_no1; + mes "Fight back your tears!"; + mes "Huhu, Yapyap!"; + completequest 1106; + completequest 1107; + 2009_1_hat = 5; + getitem Solo_Play_Box1,1; //Solo_Play_Box1 + close; + } + if (checkweight(Solo_Play_Box2,1) == 0) { + mes "[Alonie]"; + mes "Playing outside with this heavy bag?"; + mes "You are the real"; + mes "expert to play alone!"; + next; + mes "[Alonie]"; + mes "If you want the reward, empty your bag, first!"; + close; + } + mes "[Alonie]"; + mes "Here! The solo play box"; + mes "the most effective at PM!"; + mes "After putting on this box,"; + mes "you're the best lonely being!"; + next; + mes "[Alonie]"; + emotion e_no1; + mes "Fight back your tears!"; + mes "Huhu, Yapyap!"; + completequest 1106; + completequest 1107; + 2009_1_hat = 5; + getitem Solo_Play_Box2,1; //Solo_Play_Box2 + close; + } + mes "[Alonie]"; + mes "Hmmm, It's not enough."; + mes "Playing alone is not that easy thing!"; + mes "Go and kill"; + mes "^FF000020 The Papers and 40 Antique Firelocks^000000!"; + close; + } + else if (2009_1_hat == 5) { + mes "[Alonie]"; + mes "I am the playing-alone expert."; + mes "Always trying my best to play alone!"; + next; + mes "[Alonie]"; + mes "Huhu, Yapyap!"; + close; + } + end; + +} diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt index dcf726ed3..a4e484785 100644 --- a/npc/re/instances/WolfchevLaboratory.txt +++ b/npc/re/instances/WolfchevLaboratory.txt @@ -962,8 +962,9 @@ lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{ } else if (.@equip_item== Giant_Shield || .@equip_item == Geffenia_Book_Water || .@equip_item == Bible_Of_Promise2 || .@equip_item == Salvage_Cape || .@equip_item == Assassin_Handcuffs || .@equip_item == Green_Operation_Coat || .@equip_item == Ancient_Gold_Deco) { - if(.@equip_item == Salvage_Cape || .@equip_item == Ancient_Gold_Deco) - .@lhz_max_num = 4200; + .@type = 4; + if(.@equip_item == Salvage_Cape || .@equip_item == Ancient_Gold_Deco) + .@lhz_max_num = 4200; } else { mes "[Pudding]"; mes "Before! I need to check if this equipment can accept the power."; diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt index 2e9a8a795..f2ee8a506 100644 --- a/npc/re/merchants/coin_exchange.txt +++ b/npc/re/merchants/coin_exchange.txt @@ -931,8 +931,8 @@ ecl_in01,64,97,5 script Slot Expert Nattuer#ecl 4_F_FAIRYKID,{ progressbar "0xFFFF00",3; mes "[Slot Expert]"; delitem Splendide_Coin,5; //Splendide_Coin - .@luckyday = rand(1,99); - if ( .@luckyday%20 ){ + .@luckyday = rand(1,100); + if ( (.@luckyday%20) > 0){ emotion e_dots; delitem .@choice,1; mes "Shoot, I'm sorry. It failed."; diff --git a/npc/re/quests/quests_eclage.txt b/npc/re/quests/quests_eclage.txt index cb57f1681..4e75f8943 100644 --- a/npc/re/quests/quests_eclage.txt +++ b/npc/re/quests/quests_eclage.txt @@ -13053,26 +13053,26 @@ ecl_tdun01,98,47,5 duplicate(Euncheong#No.1) Euncheong#No.3 4_M_HUBOY,1,1 ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ if (ep14_2_nines > 5) { - if ((questprogress(13062,PLAYTIME) == 1) || (questprogress(13064,PLAYTIME) == 1) || (questprogress(13066,PLAYTIME) == 1)) { + if ((questprogress(13062,PLAYTIME) == 2) || (questprogress(13064,PLAYTIME) == 2) || (questprogress(13066,PLAYTIME) == 2)) { cutin "nines01",2; mes "[New Oz]"; mes "Ah...What a relief...I'm so glad you're here. I was about to leave this tower alone! But I think I'm lost."; emotion e_gasp; - if (questprogress(13062,PLAYTIME) == 1) { + if (questprogress(13062,PLAYTIME) == 2) { next; cutin "nines04",2; mes "[New Oz]"; mes "I'm hungry again from walking around so much...I'm so hungry that I can't walk anymore."; erasequest 13062; } - if (questprogress(13064,PLAYTIME) == 1) { + if (questprogress(13064,PLAYTIME) == 2) { next; cutin "nines03",2; mes "[New Oz]"; mes "Did I walk too much? I'm covered with dust again. It keeps covering my eyes."; erasequest 13064; } - if (questprogress(13066,PLAYTIME) == 1) { + if (questprogress(13066,PLAYTIME) == 2) { next; cutin "nines02",2; mes "[New Oz]"; @@ -13088,7 +13088,9 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "[New Oz]"; mes "No need to worry about me! ^FF0000I'll definitely go home this time!^000000 Thanks for everything! I'll take you out for a nice meal next time!"; emotion e_thx; - erasequest 13058; + if (questprogress(13058)){ + erasequest 13058; + } close2; cutin "",255; end; @@ -13104,7 +13106,7 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ if (questprogress(13062,PLAYTIME) >= 1) { next; mes "[New Oz]"; - if (questprogress(13064,PLAYTIME) == 1) { + if (questprogress(13064,PLAYTIME) >= 1) { mes "I guess I'll have no problem finding my way out of this tower now. I'm full...and I just need to get a few more souvenirs..."; } else { @@ -13118,7 +13120,9 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "I'm starving to death though... Could you please help me, my friend?"; emotion e_wah; } - erasequest 13058; + if (questprogress(13058)){ + erasequest 13058; + } close2; cutin "",255; end; @@ -13154,6 +13158,7 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ getitem Splendide_Coin,1; //Splendide_Coin close2; cutin "",255; + end; } cutin "nines04",2; mes "[New Oz]"; @@ -13165,6 +13170,7 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "Seeing his eyes and hearing him coughing constantly, I can tell he needs something to eat, like meat."; close2; cutin "",255; + end; } else if (questprogress(13061) == 2) { cutin "nines04",2; @@ -13199,7 +13205,9 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "[New Oz]"; mes "As long as I'm getting something to eat, I was just hoping for a good one. I'm sorry, but do me a favor please. I couldn't forget the taste of the meat."; emotion e_slur; - erasequest 13062; + if (questprogress(13062,PLAYTIME) == 2){ + erasequest 13062; + } setquest 13061; break; case 2: @@ -13265,7 +13273,10 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ next; mes "[New Oz]"; mes "Fight off some Cherenes then. You don't have to eliminate that many because I'll start fighting soon, too! Haha."; - changequest 13064,13063; + if (questprogress(13064,PLAYTIME)){ + erasequest 13064; + } + setquest 13063; break; case 2: mes "[New Oz]"; @@ -13299,18 +13310,13 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ emotion e_thx; delitem Leaf_Bookmark,20; //Leaf_Bookmark changequest 13065,13066; - setquest 13066; getexp 300000,300000; getitem Splendide_Coin,1; //Splendide_Coin - close2; } else{ cutin "nines01",2; mes "[New Oz]"; mes "I don't need that many. Maybe one for each of them?"; - close2; } - cutin "",255; - end; } else if (questprogress(13065) == 2) { cutin "nines01",2; @@ -13321,28 +13327,30 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "Would you mind helping me with that? What are friends for! Hahaha! Thanks!!"; emotion e_otl; erasequest 13065; - close2; - cutin "",255; - end; } - cutin "nines03",2; - mes "[New Oz]"; - mes "When I came to myself, I realized that everything you brought me was gone! I thought I put it right here!"; - next; - mes "[New Oz]"; - mes "I'm really really sorry, but could you help me again? Just the thought of seeing my friends makes me cry like this. Please~?"; - next; - switch (select("What a poor guy! I'll help him.:I can't take it anymore!")) { - case 1: - mes "[New Oz]"; - mes "Bookmarks made of fallen leaves...Ah, they bring so many memories back and make my eyes teary. I'm sure my friends will love it!"; - changequest 13066,13065; - break; - case 2: - cutin "nines04",2; - mes "[New Oz]"; - mes "I see...It's my fault. I'll probably end my life here, collecting souvenirs...but it's none of your business..."; - break; + else { + cutin "nines03",2; + mes "[New Oz]"; + mes "When I came to myself, I realized that everything you brought me was gone! I thought I put it right here!"; + next; + mes "[New Oz]"; + mes "I'm really really sorry, but could you help me again? Just the thought of seeing my friends makes me cry like this. Please~?"; + next; + switch (select("What a poor guy! I'll help him.:I can't take it anymore!")) { + case 1: + mes "[New Oz]"; + mes "Bookmarks made of fallen leaves...Ah, they bring so many memories back and make my eyes teary. I'm sure my friends will love it!"; + if (questprogress(13066,PLAYTIME)){ + erasequest 13066; + } + setquest 13065; + break; + case 2: + cutin "nines04",2; + mes "[New Oz]"; + mes "I see...It's my fault. I'll probably end my life here, collecting souvenirs...but it's none of your business..."; + break; + } } close2; cutin "",255; @@ -14718,8 +14726,6 @@ ecl_in01,32,52,5 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{ mes "The fact that you made it here actually seems just short of a miracle..."; close; } - .@totaltemp = questprogress(7423) + questprogress(7424) + questprogress(7425) + questprogress(7426); - .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && questprogress(7411) != 1)) { mes "[Fome]"; mes "Come here and have a talk with us."; @@ -14816,6 +14822,7 @@ ecl_in01,32,52,5 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{ } else if (ep14_2_mylord == 2) { if (questprogress(7411) == 1) { + .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (.@total == 3) { hideoffnpc "Eclage Guard#tl01"; cutin "minuel01",4; @@ -14926,6 +14933,7 @@ ecl_in01,32,52,5 script Traveler Fome#tl01 4_F_DOGTRAVELER,3,3,{ mes "I couldn't ask them straightforward questions related to that since I was afraid that it might hurt their pride."; next; setquest 7424; + .@totaltemp = questprogress(7423) + questprogress(7424) + questprogress(7425) + questprogress(7426); if (.@totaltemp == 4) { mes "As far as you know, the perception of Kardui among Laphines is somewhat favorable on the outside."; mes "But in reality, the majority of Laphines feel uneasy, distrustful, and doubtful about him."; @@ -14981,7 +14989,6 @@ ecl_in01,32,51,7 script Traveler Litrip#tl02 4_M_DOGTRAVELER,{ mes "It's very impressive that you're able to come this far..."; close; } - .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && questprogress(7412) != 1)) { mes "[Litrip]"; mes "Oh, look at this strange traveler. "; @@ -15041,6 +15048,7 @@ ecl_in01,32,51,7 script Traveler Litrip#tl02 4_M_DOGTRAVELER,{ } else if (ep14_2_mylord == 2) { if (questprogress(7412) == 1) { + .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (.@total == 3) { hideoffnpc "Eclage Guard#tl01"; cutin "minuel01",4; @@ -15149,7 +15157,6 @@ ecl_in01,35,51,3 script Traveler Chiba#tl03 4_M_DOGTRAVELER2,{ mes "But you...Hmm...I don't think you're skilled enough to travel around this area."; close; } - .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (ep14_2_mylord < 2 || (ep14_2_mylord==2 && questprogress(7413)!=1)) { mes "[Chiba]"; mes "You're a human from Midgard."; @@ -15230,6 +15237,7 @@ ecl_in01,35,51,3 script Traveler Chiba#tl03 4_M_DOGTRAVELER2,{ } else if (ep14_2_mylord == 2) { if (questprogress(7413) == 1) { + .@total = questprogress(7411) + questprogress(7412) + questprogress(7413); if (.@total == 3) { hideoffnpc "Eclage Guard#tl01"; cutin "minuel01",4; @@ -15465,7 +15473,7 @@ ecl_in01,82,70,3 script Eclage Guard#tl02 4_M_FAIRYSOLDIER,{ } } else if (ep14_2_mylord == 7) { - .@alltotal = questprogress(7418) + questprogress(7419) + questprogress(7420); + .@alltotal = questprogress(7418) + questprogress(7419) + questprogress(7420); if (questprogress(7418) == 0) { mes "[Eclage Guard]"; mes "Eh, good to see you again."; @@ -17562,7 +17570,7 @@ eclage,112,40,3 script Eclage Guard Leo#tl 4_M_FAIRYSOLDIER2,{ mes "- You have too many items to proceed with the quest. -"; close; } - .@alltotal = questprogress(7420) + questprogress(7419) + questprogress(7418); + .@alltotal = questprogress(7420) + questprogress(7419) + questprogress(7418); if (ep14_2_mylord < 7) { mes "[Leo]"; mes "Welcome to Eclage, the capital of Laphines and a gateway to Alpheim."; diff --git a/npc/scripts.conf b/npc/scripts.conf index d81d76ed7..b8f427ca1 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -215,6 +215,7 @@ npc: npc/quests/newgears/2004_headgears.txt npc: npc/quests/newgears/2005_headgears.txt npc: npc/quests/newgears/2006_headgears.txt npc: npc/quests/newgears/2008_headgears.txt +npc: npc/quests/newgears/2010_headgears.txt // - Falicious Okolnir ------------------------------------------ // God Item Second Edition Quests npc: npc/quests/okolnir.txt diff --git a/src/map/HPMmap.c b/src/map/HPMmap.c index f3a83ff0f..3da49c3b9 100644 --- a/src/map/HPMmap.c +++ b/src/map/HPMmap.c @@ -13,6 +13,7 @@ #include "atcommand.h" #include "battle.h" #include "battleground.h" +#include "channel.h" #include "chat.h" #include "chrif.h" #include "clif.h" diff --git a/src/map/battle.c b/src/map/battle.c index d32a799ab..74dfde41d 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2452,7 +2452,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block case GN_CART_TORNADO: { int strbonus = bst->str; - skillratio = 50 * skill_lv + (sd ? sd->cart_weight : battle_config.max_cart_weight) / 10 / (150 - strbonus) + 50 * (sd ? pc->checkskill(sd, GN_REMODELING_CART) : 5); + skillratio = 50 * skill_lv + (sd ? sd->cart_weight : battle_config.max_cart_weight) / 10 / max(150 - strbonus, 1) + 50 * (sd ? pc->checkskill(sd, GN_REMODELING_CART) : 5); } break; case GN_CARTCANNON: diff --git a/src/map/clif.c b/src/map/clif.c index 269b72ae1..be56f06cd 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -3999,7 +3999,7 @@ void clif_getareachar_pc(struct map_session_data* sd,struct map_session_data* ds if(dstsd->spiritball > 0) clif->spiritball_single(sd->fd, dstsd); - if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0) + if (dstsd->charm_type != CHARM_TYPE_NONE && dstsd->charm_count > 0) clif->charm_single(sd->fd, dstsd); for( i = 0; i < dstsd->sc_display_count; i++ ) { diff --git a/src/map/pc.c b/src/map/pc.c index 2013bb652..f41665fad 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -9811,6 +9811,7 @@ int pc_charm_timer(int tid, int64 tick, int id, intptr_t data) if (sd->charm_count <= 0) { ShowError("pc_charm_timer: %d spiritcharm's available. (aid=%d cid=%d tid=%d)\n", sd->charm_count, sd->status.account_id, sd->status.char_id, tid); sd->charm_count = 0; + sd->charm_type = CHARM_TYPE_NONE; return 0; } @@ -9824,6 +9825,8 @@ int pc_charm_timer(int tid, int64 tick, int id, intptr_t data) if(i != sd->charm_count) memmove(sd->charm_timer+i, sd->charm_timer+i+1, (sd->charm_count-i)*sizeof(int)); sd->charm_timer[sd->charm_count] = INVALID_TIMER; + if (sd->charm_count <= 0) + sd->charm_type = CHARM_TYPE_NONE; clif->spiritcharm(sd); @@ -9868,6 +9871,7 @@ void pc_add_charm(struct map_session_data *sd, int interval, int max, int type) memmove(sd->charm_timer+i+1, sd->charm_timer+i, (sd->charm_count-i)*sizeof(int)); sd->charm_timer[i] = tid; sd->charm_count++; + sd->charm_type = type; clif->spiritcharm(sd); } @@ -9911,6 +9915,8 @@ void pc_del_charm(struct map_session_data *sd, int count, int type) sd->charm_timer[i-count] = sd->charm_timer[i]; sd->charm_timer[i] = INVALID_TIMER; } + if (sd->charm_count <= 0) + sd->charm_type = CHARM_TYPE_NONE; clif->spiritcharm(sd); } diff --git a/src/map/skill.c b/src/map/skill.c index 55b86310e..c6ddd883d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -13730,7 +13730,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id break; case KO_KAIHOU: case KO_ZENKAI: - if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0) { + if (sd->charm_type == CHARM_TYPE_NONE || sd->charm_count <= 0) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_SUMMON,0); return 0; } |