From 17d52c1f1d7bc8f6f25e7e41c23752d5be9c4229 Mon Sep 17 00:00:00 2001 From: SinSloth Date: Mon, 30 Apr 2007 13:50:31 +0000 Subject: Gunslinger weapon Garrison Quest updated to official, thanks to Lazarus^. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10416 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/Changelog.txt | 4 +- npc/quests/gunslinger_quests.txt | 497 +++++++++++++++++++++++++++++---------- 2 files changed, 374 insertions(+), 127 deletions(-) (limited to 'npc') diff --git a/npc/Changelog.txt b/npc/Changelog.txt index a2c63189a..5ba10d339 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,7 +1,9 @@ Date Added ====== 2007/05/01 - * Updated Gunslinger weapon Inferno Quest to official. [SinSloth] + * Updated some Gunslinger quests. [SinSloth] + - Inferno Quest updated to official. + - Garrison Quest updated to official, thanks to Lazarus^. * Elly now deletes the Iron_Box, and Kiel Hyre deletes the Pin. [L0ne_W0lf] * More security on the 5th Big Door, now makes sure no one outside of who acticated it initially can use it. Resets after 10 minutes to make it. [L0ne_W0lf] * Made it so that you need to be at least step 84 to activate the final door. [L0ne_W0lf] diff --git a/npc/quests/gunslinger_quests.txt b/npc/quests/gunslinger_quests.txt index 85c92154d..28f23c453 100644 --- a/npc/quests/gunslinger_quests.txt +++ b/npc/quests/gunslinger_quests.txt @@ -1,7 +1,7 @@ //===== By: ================================================== //= Playtester //===== Current Version: ===================================== -//= 1.4 +//= 1.6 //===== Compatible With: ===================================== //= SVN eA //===== Description: ========================================= @@ -14,166 +14,411 @@ //= 1.4 Updated Destroyer Quest - Credits to Sinoco for first //= official version. [SinSloth] //= 1.5 Updated Inferno Quest to official version [SinSloth] +//= 1.6 Updated Garrison Quest - Credits to Lazarus^ for +//= making the first official version. [SinSloth] //============================================================ //===================== Garrison ===================================================== -que_ng,182,85,3 script Mr.Garrison 109,{ - set @npcname$,"[Mr.Garrison]"; +que_ng.gat,182,85,3 script Garrison 109,{ - mes @npcname$; - if(countitem(13105)>0) goto L_Already; - if(countitem(13104)>0) goto L_Slot; - mes "I have invented a new Revolver!"; - mes "I think I call it... Garrison."; - next; - mes "[" +strcharinfo(0) + "]"; - mes "Very innovative name really."; - next; - if(BaseJob != Job_Gunslinger || BaseLevel < 55){ - mes @npcname$; - mes "I don't think you have enough"; - mes "knowledge of guns to see its"; - mes "true beauty."; + if(BaseJob != Job_Gunslinger) + { + mes "[Garrison]"; + mes "You're not a gunslinger."; + mes "You're distracting me from my work. Go on."; close; } - mes @npcname$; - mes "You look like you're an expert"; - mes "in guns, aren't you?"; - next; - mes "[" +strcharinfo(0) + "]"; - mes "Yeah you could say so."; - next; - mes @npcname$; - mes "So, do you want me to make a"; - mes "^0000FFGarrison^000000 for you?"; - next; - - switch(select("Yes, please.","Nah, I'll stick with my gun.")) + else if(BaseLevel < 55) + { + mes "[Garrison]"; + mes "My name is Garrison. I'm a master in crafting guns."; + mes "The gun I make is also called the Garrison. I named it that because I think the Garrison is as cool and perfect as myself."; + next; + mes "[Garrison]"; + mes "Why don't you commission a Garrison from me?"; + next; + callsub SubGarrison; + } + switch(gun_gs) { + case 0: + if(countitem(13104) < 1) + { + mes "[Garrison]"; + mes "My name is Garrison. I'm a master in crafting guns."; + mes "The gun I make is also called the Garrison. I named it that because I think the Garrison is as cool and perfect as myself."; + next; + mes "[Garrison]"; + mes "Are you here to commission a Garrison from me?"; + next; + callsub SubGarrison; + } + mes "[Garrison]"; + mes "Hmm~ What's going on?"; + mes "Are you here because you need a weapon?"; + next; + switch( select( "I need a Garrison.","Not really.","Cancel") ) + { + case 1: + mes "[Garrison]"; + mes "Oh~ Welcome"; + mes "Everyone needs me~!"; + mes "It just proves that my gun, the Garrison, is the best of the best."; + mes "So, are you going to ask me to make one now?"; + next; + callsub SubGarrison; + + case 2: + mes "[Garrison]"; + mes "Hmm~ You look like you're wandering around without a mission."; + mes "If you've got the time, will you do me a favor?"; + next; + mes "["+strcharinfo(0)+"]"; + mes "What is it?"; + next; + mes "[Garrison]"; + mes "Mmm~ Well, I had actually received a letter recently stating that there are many defective makes of a gun I created called the Six Shooter."; + next; + mes "[Garrison]"; + mes "I'm a perfectionist, but due to my old age, my eyes are growing dark, and I think I may have sold defective Six Shooters."; + next; + mes "[Garrison]"; + mes "So what I'm trying to say is, I'm hoping someone will find me spare parts which I can use to replace defective parts in the detective Six Shooters."; + next; + mes "[Garrison]"; + mes "If you help me, I'll put a slot in that Garrison you're holding right now."; + mes "What do you say?"; + next; + mes "[Garrison]"; + mes "Just so you know, if I slot your Garrison, any current refine points or slotted cards will disappear. Decide carefully."; + next; + switch( select( "I don't like the sound of this.","Ok, I'll try it out.") ) + { + case 1: + mes "[Garrison]"; + mes "Hmm, I see."; + mes "I understand."; + mes "I guess I'll look for a different man."; + close; + + case 2: + mes "[Garrison]"; + mes "Oh, would you?"; + mes "I'm so thankful."; + mes "These are the materials I need to make spare parts..."; + next; + mes "[Garrison]"; + mes "10 Steel, 1 Elunium, 10 Emveretarcon, 30 Coal, and 10 Rusty Screws."; + mes "I need this exact amount. Don't forget."; + set gun_gs,1; + close; + } + + case 3: + mes "[Garrison]"; + mes "Hmm... Come and see me later."; + close; + } case 1: - mes @npcname$; - mes "Great! But first you need to"; - mes "bring me the materials I need"; - mes "to create one."; - next; - mes @npcname$; - mes "This is what I need:"; - mes "^FF000050 Steels^000000,"; - mes "^FF00003 Eluniums^000000,"; - mes "^FF00001 Oridecon^000000,"; - mes "^FF000050 Coals^000000,"; - mes "^FF000020 Rusty Screws^000000 and"; - mes "^FF000030000 Zeny^000000."; - next; - mes @npcname$; - if ( (countitem(999)<50) || (countitem(985)<3) || (countitem(984)<1) || (countitem(1003)<50) || (countitem(7317)<20) || (Zeny < 30000) ) { - mes "Come back when you have the materials."; + if((countitem(999) < 10) || (countitem(7317) < 10) || (countitem(1011) < 10) || (countitem(1003) < 30) || (countitem(985) < 1)) + { + mes "[Garrison]"; + mes "10 Steel, 1 Elunium, 10 Emveretarcon, 30 Coal, and 10 Rusty Screws."; + mes "Don't forget -- the amount has to be exact."; close; } - delitem 999,50; - delitem 985,3; - delitem 984,1; - delitem 1003,50; - delitem 7317,20; - set Zeny,Zeny-30000; - mes "I see you came prepared."; - mes "Let me take those material."; + mes "[Garrison]"; + mes "Oh~ You're back with what I need~"; + mes "I'm so grateful."; + mes "Oh.. there's another favor I need to have done. Err..."; next; - mes @npcname$; - mes "Give me just a minute..."; - mes "..."; - mes "..."; + mes "[Garrison]"; + mes "I need to deliver the spare parts once I make them to another person, but I've got so much work to do around here."; next; - getitem 13104,1; - mes @npcname$; - mes "It's done. Here, take this"; - mes "wonderful gun!"; + mes "[Garrison]"; + mes "Sorry to ask, but I was hoping you can deliver what I make out of these materials to the next person."; + next; + mes "[Garrison]"; + mes "While you are on delivery, I will make preparations to slot your Garrison, as promised."; + next; + mes "["+strcharinfo(0)+"]"; + mes "-Hmm, I don't want to do it, but I'll do it anyway.-"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Ok."; + next; + mes "[Garrison]"; + mes "Oh, thanks a lot."; + mes "Then deliver this to a person called Ravey. He lives in the slums of Lighthalzen."; + next; + mes "["+strcharinfo(0)+"]"; + mes "You receive the delivery goods from Garrison."; + mes "Let's deliver them to a person named Ravey, who lives in the slums of Lighthalzen."; + delitem 999,10; + delitem 1011,10; + delitem 7317,10; + delitem 985,1; + delitem 1003,30; + set gun_gs,2; close; case 2: - mes @npcname$; - mes "Well, guess a true Gunslinger"; - mes "will never part from his"; - mes "favorite gun, heh."; + mes "["+strcharinfo(0)+"]"; + mes "You receive the delivery goods from Garrison."; + mes "Let's deliver them to a person named Ravey, who lives in the slums of Lighthalzen."; close; + + case 3: + mes "[Garrison]"; + mes "Oh~ How was your trip?"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Gyah~"; + mes "I nearly died!!!"; + mes "That man tried to attack me when he saw me. I barely escaped death!"; + next; + mes "[Garrison]"; + mes "Ahh~ Oh no."; + mes "I had no idea the person who sent the letter was actually plotting to assassinate me. He was probably sent by one of our enemy guilds..."; + next; + mes "[Garrison]"; + mes "It looks like I've sent you unintentionally on a very dangerous mission."; + next; + mes "[Garrison]"; + mes "I'm so sorry."; + mes "You may also know, but there's bad guys plotting to attack the Professor and the Gunslinger Guild all over the place."; + next; + mes "[Garrison]"; + mes "Consider this a part of your training as an Gunslinger."; + next; + mes "[Garrison]"; + mes "I'm sorry about what happened."; + mes "But, as promised, I will slot your Garrison ..."; + next; + if(countitem(13104) < 1) + { + mes "[Garrison]"; + mes "Huh? Sigh."; + mes "Did you sell off your gun while you were gone?"; + mes "I said I'd slot your gun, but I never said I'd slot a gun that isn't here."; + mes "Go and get your Garrison and then get back to me."; + set gun_gs,4; + close; + } + mes "[Garrison]"; + mes "Let's see~"; + mes "*tonk* *tonk* *thump* *whump*"; + mes "Here is your modified"; + mes "Garrison."; + mes "Please use it well."; + delitem 13104,1; + getitem 13105,1; + set gun_gs, 5; + close; + case 4: + if(countitem(13104) < 1) + { + mes "[Garrison]"; + mes "Go and get your Garrison and then get back to me."; + close; + } + mes "[Garrison]"; + mes "Ah, there it is."; + mes "Here is your modified"; + mes "Garrison."; + mes "Do use it well."; + delitem 13104, 1; + getitem 13105, 1; + set gun_gs,5; + close; + case 5: + mes "[Garrison]"; + mes "Hmm~ You're back again~"; + mes "What's the matter?"; + mes "Did you come back because you need a weapon?"; + mes "What do you need?"; + next; + switch( select( "Garrison","Slot a Garrison","Cancel")) + { + case 1: + callsub SubGarrison; + case 2: + callsub SubGarrison_; + } } -L_Slot: - mes "Oh, I see you have one of"; - mes "my high-quality guns."; +SubGarrison: + mes "[Garrison]"; + mes "To create a Garrison, I need..."; + mes "50 Steel, 3 Eluniums,"; + mes "1 Oridecon, 50 Coal,"; + mes "20 Rusty Screws, and"; + mes "there's a fee of 30,000 Zeny."; + mes "Well, do you want one?."; next; - mes @npcname$; - mes "Now that I look at it, I"; - mes "think I could improve it"; - mes "some more."; - next; - mes @npcname$; - mes "How about I add a ^0000FFslot^000000"; - mes "to it? Be careful, though."; - mes "If you put a card into it"; - mes "already, it will be lost"; - mes "in the process."; - next; - switch(select("Yes, please add a slot.","Nah, I keep it as it is now.")) + switch( select( "Maybe later.","Yes, make it for me immediately.","Cancel") ) { - case 1: - mes @npcname$; - mes "Great! But first you need to"; - mes "bring me the materials I need"; - mes "to improve it."; - next; - mes @npcname$; - mes "This is what I need:"; - mes "^FF000010 Steels^000000,"; - mes "^FF00001 Eluniums^000000,"; - mes "^FF000010 Emveretarcon^000000,"; - mes "^FF000030 Coals^000000,"; - mes "^FF000010 Rusty Screws^000000 and"; - mes "of course your ^FF0000Garrison^000000."; - next; - mes @npcname$; - if ( (countitem(999)<10) || (countitem(985)<1) || (countitem(1011)<10) ||(countitem(1003)<30) || (countitem(7317)<10) || (countitem(13104)<1) ) { - mes "Come back when you have the materials."; + mes "[Garrison]"; + mes "Hmmm~ I got worked up for nothing~"; + mes "Think about it. Come see me if you decide."; + close; + + case 2: + if((countitem(999) < 50) || (countitem(7317) < 20) || (countitem(984) < 1) || (countitem(1003) < 50) ||(countitem(985) < 3) ) + { + mes "[Garrison]"; + mes "You didn't bring enough materials"; + mes "To create a Garrison, I need..."; + mes "50 Steel, 3 Eluniums,"; + mes "1 Oridecon, 50 Coal,"; + mes "50 Rusty Screws,"; + mes "and there's a fee of 30,000 Zeny"; + mes "Don't forget."; close; } - delitem 999,10; - delitem 985,1; - delitem 1011,10; - delitem 1003,30; - delitem 7317,10; - delitem 13104,1; - mes "I see you came prepared."; - mes "Let me take those materials."; - next; - mes @npcname$; - mes "Give me just a minute..."; - mes "..."; - mes "..."; - next; - getitem 13105,1; - mes @npcname$; - mes "It's done. Now it is"; - mes "even better than before."; - mes "Put it to good use."; + else if(Zeny < 30000) + { + mes "[Garrison]"; + mes "You need more Zeny~!"; + mes "More Zeny!!"; + close; + } + else if(checkweight(13104,1) == 0) + { + mes "[Garrison]"; + mes "There's no room in your inventory"; + mes "for my creation."; + mes "Make some room"; + mes "in your inventory, and then"; + mes "Come and see me."; + close; + } + mes "[Garrison]"; + mes "Hmm, looks like the correct amount of materials and Zeny."; + mes "Here's a Garrison~"; + mes "If you need one again, come and see me~"; + delitem 999,50; + delitem "Oridecon",1; + delitem 7317,20; + delitem 985,3; + delitem 1003,50; + set Zeny,Zeny-30000; + getitem 13104,1; + close; + + case 3: + mes "[Garrison]"; + mes "I'll see you when I see you~"; + close; + } + +SubGarrison_: + mes "[Garrison]"; + mes "In order to slot a Garrison, I need"; + mes "10 Steel, 1 Elunium,"; + mes "10 Emveretarcon, 30 Coal,"; + mes "10 Rusty Screws, and"; + mes "1 Garrison."; + mes "Well, do you want one?."; + next; + switch( select( "Maybe later.","Yes, make it for me immediately.","Cancel" )) + { + case 1: + mes "[Garrison]"; + mes "You've got me worked up for nothing~"; + mes "Get back to me when you've made up your mind."; close; case 2: - mes @npcname$; - mes "Okay, come back when you"; - mes "changed your mind."; + if((countitem(999) < 10) || (countitem(7317) < 10) || (countitem(1011) < 10) || (countitem(1003) < 30) || (countitem(985) < 1) || (countitem(13104) < 1)) + { + mes "[Garrison]"; + mes "You didn't bring enough materials"; + mes "In order to slot a Garrison, I need"; + mes "10 Steel, 1 Elunium,"; + mes "10 Emveretarcon, 30 Coal,"; + mes "10 Rusty Screws, and"; + mes "1 Garrison."; + mes "Don't forget."; + close; + } + else if(checkweight(13105,1) != 1) + { + mes "[Garrison]"; + mes "There's no room in your inventory"; + mes "for my creation."; + mes "Make some room"; + mes "in your inventory, and then"; + mes "Come and see me."; + close; + } + mes "[Garrison]"; + mes "Hmm, looks like the correct amount of materials and Zeny."; + mes "Here's a modified Garrison with a slot."; + mes "If you need one again, come and see me~"; + delitem 999, 10; + delitem 1011, 10; + delitem 7317, 10; + delitem 985, 1; + delitem 1003, 30; + delitem 13104, 1; + getitem 13105, 1; close; + + case 3: + mes "[Garrison]"; + mes "I'll see you when I see you~"; + close; } +} -L_Already: - mes "So how do you like"; - mes "my gun?"; +lighthalzen.gat,322,247,6 script Ravey 86,{ + + if(gun_gs == 2) + { + mes "["+strcharinfo(0)+"]"; + mes "Excuse me. Hello."; + mes "I'm here to give you replacement parts for defective Gunslin..."; + next; + mes "[Ravey]"; + mes "You!!!"; + mes "Huuut~!!"; + mes "Die!!!"; + set gun_gs,3; + percentheal 100,0; + percentheal -90,0; + next; + mes "["+strcharinfo(0)+"]"; + mes "- The man called Ravey suddenly attacks, as if he was waiting for the word Gunslinger...-"; + mes "You nearly died.-"; + next; + mes "["+strcharinfo(0)+"]"; + mes "You run away without looking back."; + mes "Let's hurry back to Garrison.-"; + close; + } + if(gun_gs == 3) + { + mes "["+strcharinfo(0)+"]"; + mes "- The man called Ravey suddenly attacks, as if he was waiting for the word Gunslinger...-"; + mes "You nearly died.-"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Let's hurry back to Garrison.-"; + close; + } + mes "[Ravey]"; + mes "Ugh..."; + mes "Err.. Err.."; + mes "......"; close; } + que_ng,187,163,3 script Ingrid 744,{ if(BaseJob != Job_Gunslinger) -- cgit v1.2.3-70-g09d2