diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/005-1 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/005-1')
-rw-r--r-- | npc/005-1/_import.txt | 16 | ||||
-rw-r--r-- | npc/005-1/_mobs.txt | 10 | ||||
-rw-r--r-- | npc/005-1/_warps.txt | 8 | ||||
-rw-r--r-- | npc/005-1/ayasha.txt | 438 | ||||
-rw-r--r-- | npc/005-1/liana.txt | 110 | ||||
-rw-r--r-- | npc/005-1/mapflags.txt | 8 | ||||
-rw-r--r-- | npc/005-1/maya.txt | 234 | ||||
-rw-r--r-- | npc/005-1/sailors.txt | 157 | ||||
-rw-r--r-- | npc/005-1/saxso.txt | 23 | ||||
-rw-r--r-- | npc/005-1/ship.txt | 17 | ||||
-rw-r--r-- | npc/005-1/soul-menhir.txt | 20 | ||||
-rw-r--r-- | npc/005-1/underground.txt | 41 | ||||
-rw-r--r-- | npc/005-1/vincent.txt | 78 | ||||
-rw-r--r-- | npc/005-1/wateranimation.txt | 37 | ||||
-rw-r--r-- | npc/005-1/zegas.txt | 144 |
15 files changed, 1341 insertions, 0 deletions
diff --git a/npc/005-1/_import.txt b/npc/005-1/_import.txt new file mode 100644 index 0000000..d7d03ba --- /dev/null +++ b/npc/005-1/_import.txt @@ -0,0 +1,16 @@ +// Map 005-1: Candor Island +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/005-1/_mobs.txt", +"npc/005-1/_warps.txt", +"npc/005-1/ayasha.txt", +"npc/005-1/liana.txt", +"npc/005-1/mapflags.txt", +"npc/005-1/maya.txt", +"npc/005-1/sailors.txt", +"npc/005-1/saxso.txt", +"npc/005-1/ship.txt", +"npc/005-1/soul-menhir.txt", +"npc/005-1/underground.txt", +"npc/005-1/vincent.txt", +"npc/005-1/wateranimation.txt", +"npc/005-1/zegas.txt", diff --git a/npc/005-1/_mobs.txt b/npc/005-1/_mobs.txt new file mode 100644 index 0000000..ed13f97 --- /dev/null +++ b/npc/005-1/_mobs.txt @@ -0,0 +1,10 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 005-1: Candor Island mobs +005-1,43,50,2,1 monster Clover Field 1028,1,35000,300000 +005-1,30,66,1,0 monster Diamond Bif 1108,1,35000,90000,Rosen::OnKillMBif +005-1,70,94,7,6 monster Maggot 1030,9,35000,300000,Trainer::OnKillMaggot +005-1,89,97,8,9 monster Candor Scorpion 1073,7,35000,300000,Trainer::OnKillCandorScorpion +005-1,43,115,6,3 monster Piou 1002,1,35000,300000 +005-1,87,43,16,15 monster Candor Scorpion 1073,12,35000,300000,Trainer::OnKillCandorScorpion +005-1,78,49,28,10 monster Mana Bug 1075,5,35000,300000,Trainer::OnKillManaBug +005-1,37,49,12,14 monster Scorpion 1071,2,35000,300000,Trainer::OnKillScorpion diff --git a/npc/005-1/_warps.txt b/npc/005-1/_warps.txt new file mode 100644 index 0000000..4c19648 --- /dev/null +++ b/npc/005-1/_warps.txt @@ -0,0 +1,8 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 005-1: Candor Island warps +005-1,38,89,0 warp #005-1_38_89 0,0,005-2,33,42 +005-1,41,84,0 warp #005-1_41_84 0,0,005-3,25,42 +005-1,55,80,0 warp #005-1_55_80 0,0,005-4,25,42 +005-1,46,78,0 warp #005-1_46_78 0,0,005-5,25,41 +005-1,34,99,0 warp #005-1_34_99 0,0,005-7,45,37 +005-1,50,85,0 warp #005-1_50_85 0,0,005-6,33,42 diff --git a/npc/005-1/ayasha.txt b/npc/005-1/ayasha.txt new file mode 100644 index 0000000..6789f42 --- /dev/null +++ b/npc/005-1/ayasha.txt @@ -0,0 +1,438 @@ +// Author: +// Crazyfefe +// Jesusalva +// Description: +// Ayasha takes care of the children of Candor Village, and is in charge of protecting them. +// The kids sometimes go play outside of city walls, and this makes her upset. +// Even if no major attack happened in Candor for a while. +// Variables: +// CandorQuest_HAS +// 0: Not met +// 1: Already met +// 2: Quest ongoing +// 3: Found all kids +// 4: Reward given + +005-1,59,91,0 script Ayasha NPC_HUMAN_FEMALE_NOOB,{ + showavatar NPC_HUMAN_FEMALE_NOOB; // this is handled by avatars.xml + if (strcharinfo(2) == "Monster King" && is_master()) goto L_MKControl; + + function quest_findAllKids { + setq CandorQuest_HAS, 2; + mesn; + mesq l("Good luck!"); + close; + } + + .@has = getq(CandorQuest_HAS); + if (.@has == 0) { + speech S_LAST_NEXT, + l("Ah, the kids are playing hide and seek, but I am afraid they went too far. A monster attack could start anytime, after all."), + l("I am currently very worried with them. They're just children! They don't know how to fight!"), + l("Could you perhaps help me to find all kids?"); + do + { + select + l("Yes!"), + l("I can't, sorry."); + + setq CandorQuest_HAS, 1; + switch (@menu) { + case 1: + quest_findAllKids; + break; + } + } while (@menu != 2); + } else if (.@has == 1) { + mesn; + mesq l("Even if the city has not been attacked on the last few years, I can't help but be concerned while the kids are playing hide and seek."); + next; + mesq l("Could you perhaps help me to find all kids?"); + next; + + do + { + select + l("Yes!"), + l("I can't, sorry."); + + switch (@menu) { + case 1: + quest_findAllKids; + break; + } + } while (@menu != 2); + } else if (.@has == 2) { + mesn; + mesq l("You still haven't found all of them yet."); + close; + } else if (.@has == 3) { + speech S_LAST_NEXT, + l("Thank you, here is your reward and... some pocket money."); + narrator("You receive 30 exp and 50 GP."); + getexp 32, 0; + Zeny = (Zeny + 50); + setq CandorQuest_HAS, 4; + close; + } else { + mesn; + mesq l("Thank you for your help."); + if (BaseLevel >= 24 && gettimetick(2) > .RENT_TIME) goto L_Sword; + close; + } + + //closedialog; + //goodbye; + close; + +L_Sword: + menu + l("The children are safe, could you rent me your sword?"), L_Rent, + l("You're welcome!"), -; + close; + +L_Rent: + // This code is equivalent to: speech S_FIRST_BLANK_LINE | S_LAST_NEXT + mes ""; + mesn; + mesq l("Ah, I guess you want to fight at the cave north of me..."); + next; + mesq l("The children are safe, aren't they...?"); + next; + mesq l("I can rent it to you for 300 GP, during 15 minutes. Deal?"); + next; + menu + rif(Zeny >= 300 && gettimetick(2) > .RENT_TIME, l("Deal!")), L_DoRent, + l("Maybe later."), -; + close; + +L_DoRent: + if (gettimetick(2) <= .RENT_TIME) mesq l("Sorry, you were taking too long to decide and I've rented my sword to somebody else."); + if (gettimetick(2) <= .RENT_TIME) close; + .RENT_TIME=gettimetick(2)+(15*60); + set Zeny, Zeny - 300; + rentitem Judgement, (15*60); + mes ""; + mesn; + mesq l("Here it is. Take care with it!"); + if ($RUNES_HOLDER$ == "" && $GAME_STORYLINE >= 4) { + next; + mesn; + mesq l("Actually, I heard that on the cave north of me a great wizard died from a curse, but his staff would be available for any other wizard who looks."); + next; + mesn; + mesq l("I don't know, I assume the staff was burried with him on the deepest parts of the cave. If it was easy, someone would already have stolen it."); + } + close; + + + + +L_MKControl: + mesn; + mes l("Oh noes! You've found the Candor control panel!"); + menu + l("Initiate small siege (lv. 5)"), L_MKSmall, + l("Abort"), -; + close; + +L_MKSmall: + addmapmask "005-1", MASK_MATTACK; + changemusic "005-1", "mythica.ogg"; + disablenpc("Mana Stone"); + pvpon("005-1"); + announce(l("##1WARNING! WARNING! Siege starting at Candor!!"), bc_all); + areamonster("005-1", 0, 0, 125, 125, l("Black Scorpion"), BlackScorpion, 1, "Ayasha::OnBlackScorpionDeath"); + areamonster("005-1", 0, 0, 125, 125, ("House Maggot"), HouseMaggot, 3, "Ayasha::OnHouseMaggotDeath"); + initnpctimer; + close; + + +OnBlackScorpionDeath: + dispbottom "BSD"; + areamonster("005-1", 0, 0, 125, 125, l("Black Scorpion"), BlackScorpion, 1, "Ayasha::OnBlackScorpionDeath"); + if (rand(10000) <= 900) + getitem StrangeCoin, 1; + debugmes "BSD OK"; + end; + +OnManaGhostDeath: + dispbottom "MGD"; + areamonster("005-1", 0, 0, 125, 125, l("Mana Ghost"), ManaGhost, 1, "Ayasha::OnManaGhostDeath"); + if (rand(10000) <= 500) + getitem StrangeCoin, 1; + debugmes "MGD OK"; + end; + +OnHouseMaggotDeath: + dispbottom "HMD"; + areamonster("005-1", 0, 0, 125, 125, l("House Maggot"), ManaGhost, 1, "Ayasha::OnHouseMaggotDeath"); + if (rand(10000) <= 400) + getitem StrangeCoin, 1; + debugmes "HMD OK"; + end; + +OnTimer5000: + areamonster("005-1", 0, 0, 125, 125, "Black Scorpion", BlackScorpion, 1, "Ayasha::OnBlackScorpionDeath"); + areamonster("005-1", 0, 0, 125, 125, ("House Maggot"), HouseMaggot, 10, "Ayasha::OnHouseMaggotDeath"); + mapannounce("003-1", "##2Message to all Candor NPCs: Take shelter!", bc_map); + disablenpc "Ayasha"; + disablenpc "Charda"; + disablenpc "Faris"; + disablenpc "Ghada"; + disablenpc "Latif"; + disablenpc "Rasin"; + disablenpc "Lilly"; + disablenpc "Zegas"; + disablenpc "Vincent"; + disablenpc "Liana"; + disablenpc "Maya"; + disablenpc "Sailors#005-1"; + disablenpc "Magic Barrier"; + disablenpc "Tolchi"; + disablenpc "Rosen"; + disablenpc "Nylo"; + disablenpc "Cynric"; + disablenpc "Morgan"; + disablenpc "Zitoni"; + disablenpc "Trainer"; + end; + +OnTimer60000: + areamonster("005-1", 0, 0, 125, 125, "Black Scorpion", BlackScorpion, 1, "Ayasha::OnBlackScorpionDeath"); + areamonster("005-1", 0, 0, 125, 125, ("Mana Ghost"), ManaGhost, 3, "Ayasha::OnManaGhostDeath"); + areamonster("005-1", 0, 0, 125, 125, ("House Maggot"), HouseMaggot, 5, "Ayasha::OnHouseMaggotDeath"); + end; + +OnTimer120000: +OnTimer180000: +OnTimer240000: +OnTimer300000: +OnTimer360000: +OnTimer420000: +OnTimer480000: + areamonster("005-1", 0, 0, 125, 125, ("Slime Blast"), 1090, 1); + areamonster("005-1", 0, 0, 125, 125, ("Mana Ghost"), ManaGhost, 1, "Ayasha::OnManaGhostDeath"); + areamonster("005-1", 0, 0, 125, 125, ("House Maggot"), HouseMaggot, 1, "Ayasha::OnHouseMaggotDeath"); + end; + +OnTimer540000: + mapannounce("005-1", "##1The Monster Army is getting tired of resistance!", bc_map); + areamonster("005-1", 0, 0, 125, 125, ("Slime Blast"), 1090, 5); + areamonster("005-1", 0, 0, 125, 125, ("Mana Ghost"), ManaGhost, 1, "Ayasha::OnManaGhostDeath"); + areamonster("005-1", 0, 0, 125, 125, ("House Maggot"), HouseMaggot, 1, "Ayasha::OnHouseMaggotDeath"); + end; + +OnTimer600000: + mapannounce("005-1", "##1The Monster King army is preparing to withdraw!", bc_map); + end; + +OnTimer630000: + removemapmask "005-1", MASK_MATTACK; + changemusic "005-1", "bartk_adventure.ogg"; + enablenpc("Mana Stone"); + killmonsterall("005-1", 0); + pvpoff("005-1"); + announce(("Candor siege is over!"), bc_all); + enablenpc "Ayasha"; + enablenpc "Charda"; + enablenpc "Faris"; + enablenpc "Ghada"; + enablenpc "Latif"; + enablenpc "Rasin"; + enablenpc "Lilly"; + enablenpc "Zegas"; + enablenpc "Vincent"; + enablenpc "Liana"; + enablenpc "Maya"; + enablenpc "Sailors#005-1"; + enablenpc "Magic Barrier"; + enablenpc "Tolchi"; + enablenpc "Rosen"; + enablenpc "Nylo"; + enablenpc "Cynric"; + enablenpc "Morgan"; + enablenpc "Zitoni"; + enablenpc "Trainer"; + stopnpctimer; + end; + +OnInit: + .sex = G_FEMALE; + .distance = 5; + .RENT_TIME=0; // TODO: This could easily be a $GLOBAL_VARIABLE + end; +} + + +function script CheckEnfant { + @kids_count = 0; + @count_tmp = 0; + if ($@GM_OVERRIDE) + npctalk3 l("Hello, I am K-@@, of the @@ order.", @kids, $@KidsBits[@kids]); + if (STARTAREA & $@KidsBits[@kids]) + goto L_Already; + STARTAREA = STARTAREA | $@KidsBits[@kids]; + + goto L_Loop; + +L_KidsTally: + if (debug || $@GM_OVERRIDE) + npctalk3 l("You found @@ out of @@ kids.", @kids_count, @count_tmp); + if (@kids_count == 6) + { + message strcharinfo(0), "That must have been the last kid."; + setq CandorQuest_HAS, 3; + } + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Oh! You found me. Good job!"); + narrator("You receive 5 exp."); + getexp 5,0; + close; + return; + +L_Loop: + while (@count_tmp < 6) { + if (STARTAREA & $@KidsBits[@count_tmp]) + @kids_count = (@kids_count + 1); + @count_tmp = (@count_tmp + 1); + } + goto L_KidsTally; + +L_Already: + mesn; + mesq l("Thanks for playing with us! Can you find my friends?"); + close; + + return; +} +005-1,76,100,0 script Charda NPC_CHILD8,{ + @kids = 0; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + // This works at same var from KidsBits. We start counting from 10, then. + setarray $@KidsBits, (1 << 10), (1 << 11), (1 << 12), (1 << 13), (1 << 14), (1 << 15); + .sex = G_OTHER; + .distance = 1; + end; +} +005-1,28,100,0 script Faris NPC_CHILD7,{ + @kids = 1; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + .sex = G_MALE; + .distance = 1; + end; +} +005-1,91,31,0 script Ghada NPC_CHILD5,{ + @kids = 2; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + .sex = G_MALE; + .distance = 1; + end; +} +005-1,45,68,0 script Latif NPC_HUMAN_M_ARTIS,{ + @kids = 3; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + .sex = G_MALE; + .distance = 1; + end; +} +005-1,25,53,0 script Rasin NPC_CHILD3,{ + @kids = 4; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + .sex = G_MALE; + .distance = 1; + end; +} +005-1,44,74,0 script Lilly NPC_CHILD6,{ + @kids = 5; + if (getq(CandorQuest_HAS) == 2) + { + CheckEnfant(); + } else { + mes l("The kid is not paying attention to you."); + close; + } + end; +OnInit: + .sex = G_MALE; + .distance = 1; + end; +} + +005-1,60,91,0 script AyashaDebug NPC_MONA,{ + showavatar NPC_MONA; // this is handled by avatars.xml + mesn; + mesq l("Reset?"); + next; + menu + l("Yes."), L_Reset, + l("Test"), L_Charda, + + l("No."), L_Close; + +L_Reset: + setq CandorQuest_HAS, 0; + STARTAREA = STARTAREA &~ (1 << 10); + STARTAREA = STARTAREA &~ (1 << 11); + STARTAREA = STARTAREA &~ (1 << 12); + STARTAREA = STARTAREA &~ (1 << 13); + STARTAREA = STARTAREA &~ (1 << 14); + STARTAREA = STARTAREA &~ (1 << 15); + mes l("Reset!"); + goto L_Close; + +L_Charda: + STARTAREA = STARTAREA &~ (1 << 10); + mes l("Charda clean!"); + goto L_Close; + +L_Close: + //showavatar; // Use this to hide the showavatar + close; + +// Use @shownpc to enable AyashaDebug +OnInit: + if (!debug) + disablenpc .name$; + end; +} diff --git a/npc/005-1/liana.txt b/npc/005-1/liana.txt new file mode 100644 index 0000000..2916013 --- /dev/null +++ b/npc/005-1/liana.txt @@ -0,0 +1,110 @@ +// TMW2 Script +// Author: +// Jesusalva +// Saulc +// Description: +// Candor girl ask for maggot sliem every 6 hours +// Variable: +// CandorQuest_Liana +// PS. Liana could (should) explain too the small cave north of there. It can be +// a place to run, or maybe monsters there are natural and protect them from the +// Mana Monsters, etc. + +005-1,54,96,0 script Liana NPC_ELVEN_FEMALE,{ + + mesn; + //mesq l("Hurnscald is a large city. I'm sure glad I live in Candor because I know where everything's at."); + mesq l("Monsters do not aim small towns like Candor. This city also comes with the plus that I know where everything's at."); + if (BaseLevel >= 5) goto L_Menu; + tutmes l("This quest will unlock at level 5."), l("Protip"), false; + close; + +L_Menu: + mesn; + mesq l("Are you enjoying yourself in Candor? Do you have any questions?"); + mes ""; + menu + l("What can I do with Maggot Slime?"),L_Slime, + l("What can I do with Bug Leg?"),L_Bug, + l("No, thanks."),L_Close; + +L_Slime: + mes ""; + .@q=getq(CandorQuest_Liana); + mesq l("I collect them."); + tutmes l("Liana, like other NPCs, provide a repeatable quest. Once you finish it, you will be able to do it again, after waiting for a few hours."); + next; + if (.@q == 0) goto L_Quest; + if (gettimetick(2) >= LIANA_TIMER + 60 * 60 * 6) goto L_Repeat; + close; + +L_Quest: + mesq l("With this I make balls of slime for Candor's childs, they really like to play with them."); + next; + mesq l("Maybe you could bring me 5 @@? I will reward you for your effort.", getitemlink(MaggotSlime)); + mes ""; + menu + rif(countitem(MaggotSlime) >= 5, l("Here they are!")), L_Finish, + l("I'll get to it."), L_Close; + close; // double sure + +L_Repeat: + mesq l("I am searching again maggot slime to craft more balls."); + next; + mesq l("Maybe you could bring me 10 sticky @@?", getitemlink(MaggotSlime)); + mes ""; + menu + rif(countitem(MaggotSlime) >= 10, l("Here they are!")), L_Finish2, + l("I'll get to it."), L_Close; + close; + +L_Finish2: + delitem MaggotSlime, 10; + getexp 21, 0; + Zeny = (Zeny + 80); // 10*4 = 40 base + setq CandorQuest_Liana, 1; + set LIANA_TIMER, gettimetick(2); + mes ""; + mesn; + mesq l("Many, many thanks! I'm sure the children will love it!"); + close; + +L_Finish: + delitem MaggotSlime, 5; + getexp 58, 7; + Zeny = (Zeny + 30); // 5*4 = 20 base + setq CandorQuest_Liana, 1; + set LIANA_TIMER, gettimetick(2); + mes ""; + mesn; + mesq l("Many, many thanks! I'm sure the children will love it!"); + close; + +L_Bug: + mes ""; + mesq l("Ah, personally I don't use it?"); + next; + mes l("She shakes her head."); + next; + if (getq(CandorQuest_Vincent) < 2) { + mesq l("You should ask this question at Vincent."); + next; + mesq l("He is in the process of making a figurine made of bug leg."); + next; + } else { + mesq l("If you have a @@, perhaps you could use it as a bait.", getitemlink(FishingRod)); + next; + mesq l("I guess it can also be used at quests... Or sell to Juliet, on Nard's ship."); + next; + } + mesq l("I hope my answer help you in your adventure!"); + next; + mes l("she's smiling at you."); + goto L_Close; + +L_Close: + closedialog; + goodbye; + close; +} + diff --git a/npc/005-1/mapflags.txt b/npc/005-1/mapflags.txt new file mode 100644 index 0000000..e0cbd89 --- /dev/null +++ b/npc/005-1/mapflags.txt @@ -0,0 +1,8 @@ +005-1 mapflag town +005-1 mapflag nopenalty +//005-2 mapflag town // Saxso House +005-3 mapflag town +005-4 mapflag town +005-5 mapflag town +005-6 mapflag town +005-7 mapflag town diff --git a/npc/005-1/maya.txt b/npc/005-1/maya.txt new file mode 100644 index 0000000..d990abc --- /dev/null +++ b/npc/005-1/maya.txt @@ -0,0 +1,234 @@ +// TMW2 scripts. +// Author: +// Saulc +// GonzoDark +// Jesusalva +// Variables: +// 0 CandorQuest_Maya +// Values: +// 00 Default, no quest selected. +// 01 First quest accepted: Need 3 cotton cloth and 3 maggot slime +// 02 First quest completed: Reward Candor shirt +// 03 Second quest accepted: Need 3 ScorpionStinger and 10 Piou Feathers +// 04 Second quest completed: Reward 700 GP (precise calculation) +// 05 wolvern tooth +20k + 2000monster point ->claw pendant + +005-1,49,47,0 script Maya NPC_RAIJIN_FEMALE_LEGION_ARTIS,{ + function itemCombo; + .@maya = getq(CandorQuest_Maya); + + if (.@maya == 0) + goto L_QuestNotStarted; + if (.@maya == 1) + goto L_QuestAccepted; + if (.@maya == 2) + goto L_Quest2; + if (.@maya == 3) + goto L_Quest2Accepted; + if (.@maya == 4) + goto L_NextQuestPending; + +L_QuestNotStarted: + mesn; + mesq l("Hi there, I can always use a helping hand around here, are you the one for the job?"); + mes ""; + menu + l("Sure"),L_Next, + l("No, thanks."),L_Close; + +L_Next: + mes ""; + mesn; + mesq l("Good! First, let us test if you are resourceful. Bring me 3 @@ and 3 @@. That should be enough!", getitemlink(CottonCloth), getitemlink(MaggotSlime)); + setq CandorQuest_Maya, 1; + tutmes l("You can use \"%s <monster_name>\" to obtain specified monster drop list and stats.", b("@monsterinfo")), l("Protip"), false; + close; + +L_QuestAccepted: + mesn; + mesq l("I see you have brought @@/3 @@ and @@/3 @@ for me",countitem(CottonCloth),getitemlink(CottonCloth),countitem(MaggotSlime),getitemlink(MaggotSlime)); + mes ""; + menu + rif(countitem(CottonCloth) >= 3 && countitem(MaggotSlime) >= 3, l("Here they are!")), L_QuestCompleted, + rif(countitem(CottonCloth) < 3 || countitem(MaggotSlime) < 3, l("Oh, then I don't have enough! I'll bring more later!")), L_GetHelp1, + l("Can we get back to that later?"), -; + tutmes l("You can use \"%s <monster_name>\" to obtain specified monster drop list and stats.", b("@monsterinfo")), l("Protip"), false; + close; + +L_GetHelp1: + mes ""; + mesc l("Protip: You can get @@ from shops. Cotton is rumored to be magical, keep this is mind.", getitemlink(CottonCloth)); + mesc l("Protip 2: If you fell stuck, ask at #world, even if nobody is online. Who knows, someone on Discord or IRC might reply!"); + tutmes l("You can use \"%s <monster_name>\" to obtain specified monster drop list and stats.", b("@monsterinfo")), l("Protip"), false; + next; + goto L_Close; + +L_QuestCompleted: + delitem CottonCloth, 3; + delitem MaggotSlime, 3; + set Zeny, Zeny + 325; + getitem CandorShirt, 1; + getexp BaseLevel*8, 5; + setq CandorQuest_Maya, 2; + + mes ""; + mesn; + mesq l("Thanks for the help. Here, take this shirt and some money."); + close; + +L_Quest2: + mesn; + mesq l("Thanks again for the help. You have proven that you are resourceful."); + next; + if (BaseLevel < 7) mesn; + if (BaseLevel < 7) mesq l("But maybe you should help other people and get some levels before returning to me."); + if (BaseLevel < 7) close; + mesn; + mesq l("As always, I can use a helping hand around here. Interested?"); + mes ""; + menu + l("Sure"),-, + l("No, thanks."),L_Close; + + mes ""; + mesn; + mesq l("Good! I want 3 @@ and 10 @@. I have a contract to transform that in good money.", + getitemlink(ScorpionStinger), getitemlink(PiouFeathers)); + setq CandorQuest_Maya, 3; + close; + +L_Quest2Accepted: + mesn; + mesq l("I see you have brought @@/3 @@ and @@/10 @@ for me.", + countitem(ScorpionStinger),getitemlink(ScorpionStinger), + countitem(PiouFeathers),getitemlink(PiouFeathers)); + mes ""; + menu + rif(countitem(ScorpionStinger) >= 3 && countitem(PiouFeathers) >= 10, l("Here they are!")), L_Quest2Completed, + rif(countitem(ScorpionStinger) < 3 || countitem(PiouFeathers) < 10, l("Oh, then I don't have enough! I'll bring more later!")), L_Close, + l("Can we get back to that later?"), -; + close; + +L_Quest2Completed: + delitem ScorpionStinger, 3; + delitem PiouFeathers, 10; + set Zeny, Zeny + 725; + getexp BaseLevel*10, 10; + setq CandorQuest_Maya, 4; + + // Reward Calculation: Piou base is 3 and Stinger base is 25. + // Maya will pay in a 1.5x factor + 300 GP she owed you + a small bonus to round things + // (3*3*1.5)+(25*10*1.5) = roughly 389 GP + 300 + bonus(11) = 700 + + mes ""; + mesn; + mesq l("Thanks for the help! If you help people, they'll start trusting you. Once they trust you, they'll give you quests which are very important to them;"); + next; + mesn; + mesq l("And once they entrust you with what is important for them, they'll pay better. Here is 700 GP. Come back later."); + close; + + +L_NextQuestPending: + mesn; + mesq l("Thanks again for the help. You have proven that you are resourceful. Come back again later."); + switch (getequipid(EQI_HEAD_MID)) { + case CreasedShirt: + itemCombo(l("Creased"), l("All Stats +1"), + CreasedShirt, CreasedBoots, CreasedGloves, CreasedShorts); + break; + case CandorShirt: + itemCombo(l("Candor"), l("All Stats +1, Max HP +1%"), + CandorShirt, CandorBoots, CandorGloves, CandorShorts, CandorHeadBand); + break; + case CottonShirt: + itemCombo(l("Cotton"), l("All Stats +1, Max HP +1%, Max MP +5%"), + CottonShirt, CottonBoots, CottonGloves, 0, + CottonShorts, CottonTrousers, CottonSkirt, MiniSkirt); + break; + case MinerTankTop: + itemCombo(l("Miner"), l("All Stats +1, Vit +2"), + MinerTankTop, MinerGloves, MinerHat, 0, + MinerKnife, Pickaxe); + break; + case WarlordPlate: + itemCombo(l("Warlord"), l("All Stats +1, Block +2%"), + WarlordPlate, WarlordBoots, WarlordGloves, WarlordPants, WarlordHelmet); + break; + case GoldenWarlordPlate: + itemCombo(l("Golden Warlord"), l("All Stats +1, Block +2%"), + GoldenWarlordPlate, WarlordBoots, WarlordGloves, WarlordPants, WarlordHelmet); + break; + case Chainmail: + itemCombo(l("Chainmail"), l("Block +1%"), + Chainmail, ChainmailSkirt); + break; + case GoldenChainmail: + itemCombo(l("Golden Chainmail"), l("Block +1%"), + GoldenChainmail, ChainmailSkirt); + break; + case TerraniteArmor: + itemCombo(l("Terranite"), l("All Stats +1, MDEF +30%"), + TerraniteArmor, TerraniteBoots, + TerranitePants, TerraniteMask); + break; + case LeatherShirt: + itemCombo(l("Leather"), l("All Stats +2"), + LeatherShirt, LeatherBoots, LeatherGloves, LeatherTrousers); + break; + case AssassinChest: + itemCombo(l("Assassin"), l("All Stats +1, Agi +5"), + AssassinChest, AssassinBoots, AssassinGloves, AssassinPants); + break; + case SaviorArmor: + itemCombo(l("Savior"), l("All Stats +5"), + SaviorArmor, SaviorBoots, SaviorPants, SaviorHelmet, 0, + SaviorShield, Skypiercer); + break; + case SilkRobe: + itemCombo(l("Silk"), l("Passive MP Regen"), + SilkRobe, CottonBoots, 0, + SilkGloves, CottonGloves); + break; + case SorcererRobe: + itemCombo(l("Sorcerer"), l("Passive MP Regen"), + SorcererRobe, 0, + CottonBoots, WizardMoccasins, WitchBoots, 0, + CottonGloves, SilkGloves); + break; + } + close; + +function itemCombo { + next; + mesn; + mesq l("I see you're trying to use the %s set, nice!", b(getarg(0))); + mesq l("This set grants the following effect when complete:"); + mesc getarg(1), 3; + next; + mesn; + mesq l("This set is composed by the following items:"); + mes ""; + for (.@i = 2; .@i < getargcount(); .@i++) { + if (getarg(.@i) <= 0) + mesc l("--- AND ANY OF ---"); + else + mesc l("* %s", getitemlink(getarg(.@i))),(countitem(getarg(.@i)) ? 3 : 9); + } + mes ""; + next; + mesn; + mesq l("To get the combo, you must fill all slots if one of the listed items. Usually any of the listed ones will do, but in rare cases it won't!"); + return; +} + +L_Close: + closedialog; + goodbye; + close; + +OnInit: + .sex = G_FEMALE; + .distance = 4; + end; +} diff --git a/npc/005-1/sailors.txt b/npc/005-1/sailors.txt new file mode 100644 index 0000000..633e195 --- /dev/null +++ b/npc/005-1/sailors.txt @@ -0,0 +1,157 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Crazyfefe +// Description: +// A Sailor from Nard's crew. +// CandorQuest_Sailors +// 0: Not started +// 1: Accepted +// 2: Invite Elmo +// 3: Completed + +005-1,102,109,0 script Sailors#005-1 NPC_ELVEN_MAN_TRADER_SITTING,{ + .@q = getq(CandorQuest_Sailors); + if (.@q == 1) + goto L_Report; + if (.@q == 2) + goto L_Elmo; + if (.@q == 3) + goto L_Complete; + if ( BaseLevel < 8) { hello; end; } + + mesn; + mesq l("Ahoy matey!"); + next; + mesq l("Arr, it is always good to be on land after so much time in sea!"); + next; + mesq l("We want to celebrate this moment, but can you believe we ran out of beer?"); + mes ""; + menu + l("If I were you, I would drink water."),L_Water, + l("WHAT? How can you ever party without beer?!"),L_Accept; + +L_Water: + mes ""; + mesn; + mesq l("Ah, it is not the same. Not the same."); + next; + mesq l("When I am drunk I tell myself to stop drinking, but I won't listen the words of a drunkard."); + close; + +L_Accept: + mes ""; + mesn; + mesq l("We can't, don't you agree?!"); + next; + mesq l("However, if we waste the ship's money in beer, Nard will get mad."); + next; + mesq l("We won't be able to pay you in money, but we'll make you one of us if you bring us beer!"); + next; + mesq l("Please bring us 5 @@! That should be enough!", getitemlink("Beer")); + setq CandorQuest_Sailors, 1; + close; + +L_Report: + mesn; + mesq l("I see you brought @@/5 @@ for us!",countitem("Beer"),getitemlink("Beer")); + mes ""; + menu + rif(countitem("Beer") >= 5, l("Indeed, matey! Here they are!")), L_Give, + rif(countitem("Beer") >= 5, l("You're doing the math wrong, matey! I'll bring them later!")), L_Later, + rif(countitem("Beer") < 5, l("Arr, that's not enough! I'll bring more later!")), L_Later; + close; + +L_Later: + mes ""; + mesn; + mesq l("Arr, we will wait for you then! We still have tasks to complete!"); + close; + +L_Give: + inventoryplace Bandana, 1; + delitem "Beer", 5; + getitem Bandana, 1; + getexp 35, 5; + setq CandorQuest_Sailors, 2; + mes ""; + mesn; + mesq l("Arr, that's some fine ale! We can do the party when we're done with our work!"); + next; + mesn; + mesq l("Take this @@ to prove you're one of us! Could you also invite Elmo? Thanks, matey!", getitemlink("Bandana")); + close; + + +L_Elmo: + mesn; + mesq l("Please invite Elmo for the party, matey! We can't leave our positions!"); + close; + +L_Complete: + .@q = getq(CandorQuest_SailorCure); + mesn; + mesq l("Thanks for the help! Arr, that was some fine ale, indeed!"); + if (.@q == 1) + close; + next; + mesn; + mesq l("A pity a friend of ours drank too much. Juliet knows how to cure. We need to give her a @@ to do a hangover potion.", getitemlink(ScorpionStinger)); + +L_CureMaster: + if (countitem(ScorpionStinger) < 1) + close; + next; + mesn; + mesq l("...Dealing with scorpion stingers is a gamble, so we may need a few stingers before making a successful potion."); + next; + select + rif(countitem(ScorpionStinger) >= 1, l("I have a Stinger with me. Try it!")), + l("I see."); + + mes ""; + + if (@menu == 1) + goto L_CureLoop; + close; + +L_CureLoop: + inventoryplace CandorBoots, 1; + delitem ScorpionStinger,1; + setq2 CandorQuest_SailorCure, getq2(CandorQuest_SailorCure)+1; + if (rand(5) == 2) // Crazyfefe like this number :3 + goto L_questCure_success; + goto L_questCure_failure; + +L_questCure_success: + if (getq2(CandorQuest_SailorCure) * 30 < 240) + Zeny = Zeny + 240 - getq2(CandorQuest_SailorCure) * 30; + else + Zeny = Zeny + 30; + getitem CandorBoots, 1; + getexp 20, 2; + setq CandorQuest_SailorCure, 1; + mesn; + mesq l("That... It... It worked! This is just the right claw!"); + next; + mesn; + mesq lg("We'll bring this one to Juliet at once. Thanks for your help! Savior!"); + close; + +L_questCure_failure: + if (getq2(CandorQuest_SailorCure) * 30 < 240) + Zeny = Zeny + 60; + else + Zeny = Zeny + 30; + mesn; + mesq l("That... Didn't work. I'm sorry."); + next; + mesn; + mesq l("Here's some gold for your efforts."); + goto L_CureMaster; + +OnInit: + .sex = G_OTHER; + .distance = 7; + end; +} diff --git a/npc/005-1/saxso.txt b/npc/005-1/saxso.txt new file mode 100644 index 0000000..5bc728f --- /dev/null +++ b/npc/005-1/saxso.txt @@ -0,0 +1,23 @@ +// TMW2 Script +// Author: +// Jesusalva + +// Sign of great danger +005-1,37,90,0 script #SignSaxso NPC_NO_SPRITE,{ + mes ".:: "+l("DANGER")+" ::."; + mesc l("Saxso's Official Residence."); + mesc l("DO NOT ENTER."); + mes ""; + mesc l("-- Zegas, the Mayoress"); + tutmes l("In some dungeons etc., there might be a monster much, much stronger than all other monsters on the area. These are the optional miniboss."), l("Optional Miniboss"); + tutmes l("Defeating is entirely optional. They usually give more experience than the average, but are much stronger and dangerous."), l("Optional Miniboss"); + tutmes l("Usually they have a few rare drops. The miniboss of Candor may drop a rare key, which you can use to open a certain chest..."), l("Optional Miniboss"); + tutmes l("(Protip: Always use %s before engaging a different monster!)", b("@monsterinfo")), l("Optional Miniboss"); + close; + +OnInit: + .sex = G_OTHER; + .distance = 3; + end; +} + diff --git a/npc/005-1/ship.txt b/npc/005-1/ship.txt new file mode 100644 index 0000000..3b333be --- /dev/null +++ b/npc/005-1/ship.txt @@ -0,0 +1,17 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// This script controls access to Nard's Ship, fixing variables. + +005-1,50,117,0 script CandorShip NPC_HIDDEN,0,0,{ + +OnTouch: + LOCATION$="Candor"; + goto L_Warp; + +L_Warp: + warp "002-3@"+LOCATION$, 31, 28; + closedialog; + close; +} diff --git a/npc/005-1/soul-menhir.txt b/npc/005-1/soul-menhir.txt new file mode 100644 index 0000000..6ea59bf --- /dev/null +++ b/npc/005-1/soul-menhir.txt @@ -0,0 +1,20 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Soul Menhir + +005-1,43,97,0 script Soul Menhir#candor NPC_SOUL_MOSS,{ + @map$ = "005-1"; + setarray @Xs, 42, 43, 44, 42, 44, 42, 43, 44; + setarray @Ys, 96, 96, 96, 97, 97, 98, 98, 98; + @x = 0; + @y = 0; + callfunc "SoulMenhir"; + @map$ = ""; + cleararray @Xs[0], 0, getarraysize(@Xs); + cleararray @Ys[0], 0, getarraysize(@Ys); + @x = 0; + @y = 0; + close; +} diff --git a/npc/005-1/underground.txt b/npc/005-1/underground.txt new file mode 100644 index 0000000..bd5b214 --- /dev/null +++ b/npc/005-1/underground.txt @@ -0,0 +1,41 @@ +// TMW2 Script +// Author: +// Crazyfefe +// Jesusalva + +005-1,65,63,0 script Sign#0051UG NPC_SWORDS_SIGN,{ + mes ".:: "+l("DANGER")+" ::."; + mesc l("Endless, cute, dangerous, deadly."); + mesc l("Only those whom overcome all Candor Challenges shall wield ultimate power."); + mes ""; + mesc l("-- The Expedition"); + close; + +OnInit: + .sex = G_OTHER; + .distance = 3; + end; +} + +// Effective Warp +005-1,66,62,0 script Magic Barrier#0051 NPC_HIDDEN,0,0,{ + end; + +OnTouch: + if (TUTORIAL && !@candor_warn) { + mesc ".:: "+l("WARNING")+" ::.", 1; + mesc l("You're about to enter a dangerous zone!"); + mesc l("Outside towns, there's an EXP penalty if you die."); + mes ""; + mes l("This cave is considered outside the town!"); + next; + mesc l("Enter anyway?"); + mesc l("EXP Penalty: ON"), 1; + if (askyesno() == ASK_NO) close; + closeclientdialog; + @candor_warn = true; // Maybe record this in a more definitive way + } + warp "006-0", 49, 53; + end; +} + diff --git a/npc/005-1/vincent.txt b/npc/005-1/vincent.txt new file mode 100644 index 0000000..7b6e7e2 --- /dev/null +++ b/npc/005-1/vincent.txt @@ -0,0 +1,78 @@ +// TMW2 scripts. +// Authors: +// Saulc +// Variables: +// CandorQuest_Vincent - quest var + + +005-1,99,105,0 script Vincent NPC_PLAYER,{ + .@q = getq(CandorQuest_Vincent); + if (.@q == 1) goto L_CheckItems; + if (.@q == 2) goto L_QuestDone; + + speech S_LAST_BLANK_LINE, + l("I am making a figurine with Bug legs for the upcoming festival."), + lg("Be a friend and bring me @@ @@.", "Be a friend and bring me @@ @@.", .LegsCount, getitemlink(BugLeg)); + + switch (select(l("Ok, I'll be back in no time."), + rif(countitem(BugLeg) >= .LegsCount, l("I have them here already.")), + l("Sorry, I'm doing other things at the moment."))) + { + case 1: + setq CandorQuest_Vincent, 1; + speech S_FIRST_BLANK_LINE, + l("Thank you. I'll wait here."); + close; + case 2: + setq CandorQuest_Vincent, 1; + goto L_CheckItems; + case 3: + speech S_FIRST_BLANK_LINE, + l("But I'm almost out of @@...", getitemlink(BugLeg)); + close; + } + +L_CheckItems: + if (countitem(BugLeg) < .LegsCount) + { + speech + l("Sorry, but you don't have what I need."), + l("I need @@ @@.", .LegsCount, getitemlink(BugLeg)); + close; + } + + speech + l("I can't believe it! You've brought me @@ @@!", .LegsCount, getitemlink(BugLeg)), + l("That's exactly what I needed!"), + l("I will be forever grateful!"); + + delitem BugLeg, .LegsCount; + getexp 15, 5; + Zeny = Zeny + 850; + message strcharinfo(0), l("You receive @@ GP!", 850); + setq CandorQuest_Vincent, 2; + close; + +L_QuestDone: + speech + l("Hey, @@!", strcharinfo(0)), + l("My figurine is so nice!"); + tutmes l("Some quests and events, like the festival, are only available during specific times."); + tutmes l("Some will only repeat yearly, while other events happen weekly or monthly, or in some other time aspect."); + close; + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, CreasedShirt); + setunitdata(.@npcId, UDT_HEADMIDDLE, CreasedShorts); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); + setunitdata(.@npcId, UDT_HAIRSTYLE, 25); + setunitdata(.@npcId, UDT_HAIRCOLOR, 4); + + .LegsCount = 7; + + .sex = G_MALE; + .distance = 5; + end; +} diff --git a/npc/005-1/wateranimation.txt b/npc/005-1/wateranimation.txt new file mode 100644 index 0000000..cb8ae56 --- /dev/null +++ b/npc/005-1/wateranimation.txt @@ -0,0 +1,37 @@ +// TMW2 scripts. +// Author: +// Saulc +// Description: +// Water animations, splash, fishes, etc... + +005-1,81,62,0 script #water_animation_candor0 NPC_WATER_SPLASH,{ + + fishing(1, + Roach, + Tench); // begin or continue fishing + close; + +OnInit: + setarray .bait_ids, + SmallTentacles, 24, + PiouLegs, 1, + Bread, 8, + Aquada, 24, + Tentacles, 32, + BugLeg, 2; + + .sex = G_OTHER; + .distance = 4; + end; +} + +005-1,84,66,0 duplicate(#water_animation_candor0) #water_animation_candor1 NPC_WATER_SPLASH +005-1,74,66,0 duplicate(#water_animation_candor0) #water_animation_candor2 NPC_WATER_SPLASH +005-1,76,70,0 duplicate(#water_animation_candor0) #water_animation_candor3 NPC_WATER_SPLASH +005-1,79,71,0 duplicate(#water_animation_candor0) #water_animation_candor4 NPC_WATER_SPLASH +005-1,78,62,0 duplicate(#water_animation_candor0) #water_animation_candor5 NPC_WATER_SPLASH +005-1,55,61,0 duplicate(#water_animation_candor0) #water_animation_candor6 NPC_WATER_SPLASH +005-1,49,64,0 duplicate(#water_animation_candor0) #water_animation_candor7 NPC_WATER_SPLASH +005-1,56,65,0 duplicate(#water_animation_candor0) #water_animation_candor8 NPC_WATER_SPLASH +005-1,48,66,0 duplicate(#water_animation_candor0) #water_animation_candor9 NPC_WATER_SPLASH + diff --git a/npc/005-1/zegas.txt b/npc/005-1/zegas.txt new file mode 100644 index 0000000..a623f32 --- /dev/null +++ b/npc/005-1/zegas.txt @@ -0,0 +1,144 @@ +// TMW2 Script +// Author: +// Unknown +// Description: +// Saxso's widow. Asks new players to trigger a bug bomb in the storehouse. + +005-1,43,85,0 script Zegas NPC_MONA,{ + function lagTutorial; + .@q = getq(CandorQuest_Barrel); + if (BaseLevel < 5) + goto L_Weak; + if (.@q == 1) + goto L_Find; + if (.@q == 2) + goto L_Looking; + if (.@q == 3) + goto L_QuestEnd; + if (.@q == 4) + goto L_Thanks; + goto L_Meet; + +L_Weak: + mesn; + mesq l("Do not enter in this storehouse, the maggots there will kill you."); + close; + +L_Meet: + mesn; + mesq l("Hey do you have a second?"); + next; + mesq l("The storehouse here is overrun with house maggots."); + next; + mesq l("Wouldn't you know it, the bug bomb Eomie gave us is in one of the store room barrels."); + next; + mesq l("Can you search ##Bthe barrels##b for the bug bomb and set it off when you find it?"); + setq CandorQuest_Barrel, 1; + menu + l("Sure."),L_Start, + l("Maybe some other time."),L_Close; + +L_Find: + mesn; + mesq l("The storehouse is still over run with house maggots."); + next; + mesq l("Please help me find the bug bomb Eomie gave us is in one of the store room barrels?"); + menu + l("Sure."),L_Start, + l("Maybe some other time."),L_Close; + +L_Start: + mesn; + mesq l("Thanks, come back and see me once you found the bug bomb and set it off."); + setq CandorQuest_Barrel, 2; + lagTutorial(); + close; + +L_Looking: + mesn; + mesq l("Still haven't found it? Well, keep looking the barrels at this storehouse. I know it's in there, somewhere."); + if (TUTORIAL) { + mesc l("Read the tutorial again?"); + if (askyesno() == ASK_YES) + lagTutorial(); + } + close; + +L_QuestEnd: + mesn; + mesq l("From the smell I can see you found the bug bomb!"); + mesq l("Thanks once again, I know it's not much but here is @@ GP for your troubles.", 350); + getexp 63, 0; + getitem CandorShorts, 1; + Zeny = (Zeny + 350); + setq CandorQuest_Barrel, 4; + close; + +L_Thanks: + mesn; + mesq l("Thanks for Helping with clear out the store room!"); + if (!getq(CandorQuest_Chest)) { + next; + mesn; + mesq l("Do you see that fancy house over there? My husband, @@, used to live there.", b(l("Saxso"))); + next; + mesn; + mesq l("Strangely enough, when he died, he became a ghost. This shouldn't happen, but yet..."); + next; + mesn; + mesq l("Anyway, conspiratory theories aside, his ghost is a powerful boss. I would not attack him if I were you!"); + } + close; + +L_Close: + closedialog; + goodbye; + close; + +function lagTutorial { + // TUTORIAL block + tutmes l("The bugs there can be pretty vicious. Do you know what's worse though? Lag."); + tutmes l("By pressing @@, you can open the Shortcut menu. And by pressing @@, you open the skill menu!", b("F8"), b("F5")); + tutmes l("If you drag the \"Resync\" skill from the skill list to the shortcut list, you'll be able to rapidly solve some lag issues!"); + tutmes l("Of course, lag might always be a problem. Remember to drag healing items to the shortcut list too. %%2"); + return; +} + +OnInit: + .sex = G_FEMALE; + .distance = 4; + end; +} + +005-1,32,73,0 script ZegasDebug NPC_MONA,{ + showavatar NPC_MONA; // this is handled by avatars.xml + mesn; + mesq l("Reset?"); + next; + menu + l("Yes."), L_Reset, + l("No."), L_Close; + +L_Reset: + setq CandorQuest_Barrel, 0; + STARTAREA = STARTAREA &~ (1 << 2); + STARTAREA = STARTAREA &~ (1 << 3); + STARTAREA = STARTAREA &~ (1 << 4); + STARTAREA = STARTAREA &~ (1 << 5); + STARTAREA = STARTAREA &~ (1 << 6); + STARTAREA = STARTAREA &~ (1 << 7); + STARTAREA = STARTAREA &~ (1 << 8); + STARTAREA = STARTAREA &~ (1 << 9); + mes l("Reset!"); + close; + +L_Close: + //showavatar; // Use this to hide the showavatar + close; + +// Use @shownpc to enable ZegasDebug +OnInit: + if (!debug) + disablenpc "ZegasDebug"; + end; +} |