From fa4ac1e970555c7b2d835cba1f29ccfec235aad7 Mon Sep 17 00:00:00 2001 From: Lupus Date: Wed, 20 Sep 2006 09:39:11 +0000 Subject: fixed Cube Room quest bug, more optimizations git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8821 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/Changelog.txt | 2 + npc/other/Global_Functions.txt | 13 ++- npc/quests/quests_lighthalzen.txt | 56 ++++----- npc/quests/skills/novice_skills.txt | 221 +++++++++++++++++------------------- 4 files changed, 143 insertions(+), 149 deletions(-) (limited to 'npc') diff --git a/npc/Changelog.txt b/npc/Changelog.txt index c504b7dbf..06e67c2d3 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -30,12 +30,14 @@ Playtester Date Added ====== 09/20 + * Fixed some bugs in Cube Room. Some parts could be skipped [Lupus] * Final optimization of Niflheim quests [Lupus] - Book of Devil Quest uses bit-wise var MISC_QUEST | 256. Removed extra vars - Piano Quest uses 1 bit-wise temp var instead of 5 variables. - Clear Niflheim garbage vars in Global_Functions.txt - Added few missing NEXT; into job quests, thanks to $ephiroth - Changed permanent variables in 1st Job Quest skills to @temp ones + - Cube Room: 5 key vars -> 1 var cubekey 09/19 * Fixed rpsroulette.txt, giving 10 blue potions as prize instead of the 20 it said. Also fixed a missing variable in sphinx_mask.txt. Noticed by JTE and fixed by Warian [erKURITA] diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 356900ef8..dfcf7f561 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -27,6 +27,7 @@ //= 2.03 Added Gunslinger vars to F_ClearJobVar [Lupus] //= 2.04 Added dtseligible 2 (becomes MISC_QUEST|128) to F_ClearGarbage [Evera] //= 2.05 Book of Devil -> MISC_QUEST|256, clear other Niflheim garbage vars [Lupus] +//= +more garbage clean //============================================================ @@ -75,25 +76,31 @@ function script F_ClearJobVar { function script F_ClearGarbage { // Clear outdated global VARS + //DTS Vote System if(dtseligible == 2) set MISC_QUEST,MISC_QUEST|128; if(dtseligible == 3) set dtseligible,0; if($talk) set $talk,0; if($dtsglobalelig) set $dtsglobalelig,0; if($dts&(1<<6)) set $dts,$dts&~(1<<6); + //Misc Quests if(MARIANNE) {set MISC_QUEST,MISC_QUEST | 1; set MARIANNE,0;} set MEAT,0; set MORRISON,0; set BUNYBND,0; set TEMPESTRA,0; set sewer_prt,0; set iz_move_alberta,0; - if(nif_q_done) {set nif_q_done,0; set MISC_QUEST,MISC_QUEST | 64;} if(MORGEN >= 2) {set MISC_QUEST,MISC_QUEST | 4; set MORGEN,0;} - set nif_t,0; + //Valhalla Remember Quest Skills. Unused set QSK1,0; set QSK2,0; set QSK3,0; set QSK4,0; + //Niflheim + if(nif_q_done) {set nif_q_done,0; set MISC_QUEST,MISC_QUEST | 64;} if(niflheimlost2) set MISC_QUEST,MISC_QUEST | 256; set niflheimlost2,0; set niflheimlost,0; set lostgirl,0; - set nif_random,0; set nif_random1,0; + set nif_t,0; set nif_random,0; set nif_random1,0; if(MISC_QUEST&32){set nif_quest1,0; set nif_quest2,0; set nif_quest3,0; set nif_quest4,0; set nif_quest5,0;} + //1st Class Quest Skills set ARWCRFT,0; set HOLYLIGHT,0; set ARWREP,0; set ENRGYCOAT,0; set CRAZYROAR,0; set CHANGECART,0; set CARTREVO,0; set SANDATTACK,0; set STONEFLING,0; set BACKSLIDE,0; set BAGNFNTY,0; + //Cube Room + set ykey,0; set redkey,0; set fkey,0; set gkey,0; set bkey,0; return; } diff --git a/npc/quests/quests_lighthalzen.txt b/npc/quests/quests_lighthalzen.txt index dad4e19da..07b613737 100644 --- a/npc/quests/quests_lighthalzen.txt +++ b/npc/quests/quests_lighthalzen.txt @@ -4,7 +4,7 @@ //= Persian, Vicious_Pucca, Completed by aoa00 //= Evera, MasterOfMupppets, Lupus //===== Current Version: ===================================== -//= 2.6a +//= 2.7 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= @@ -44,6 +44,8 @@ //= 2.5 Fixed Kellasus giving you extra skills in Bio Ethics quest [Evera] //= 2.6 Fixed exploit letting any class get homunculus from Bio Ethics Quest [Evera] //= 2.6a Moved Bio Ethics Quest to Alchemist SKILL QUESTS [Lupus] +//= 2.7 fixed bugs that let people bypass some quest parts V_V [Lupus] +//= reused cubekey var for 4 Cube Room key vars //============================================================ lighthalzen.gat,1,1,7 script sneakAddSuber -1,{ @@ -642,7 +644,7 @@ L_2: //--------------------------Barrel-------------------------- lhz_cube.gat,237,183,0 script Barrel 111,{ - if (ykey == 1) goto L_4; + if (cubekey&1) goto L_4; if (box == 1) goto L_2; mes "There is a box that looks weak."; if (axe == 0) close; @@ -692,7 +694,7 @@ L_3: mes "Within the box, there is 'yellow key'."; next; mes "You acquired '^FF0000yellow key^000000'."; - set ykey,1; + set cubekey,cubekey|1; close; L_4: @@ -706,7 +708,7 @@ L_4: lhz_cube.gat,242,201,0 script Drawer 111,{ if (knife == 1) goto L_3; mes "The drawer is locked."; - if (redkey == 1) goto L_1; + if (cubekey&2) goto L_1; close; L_1: @@ -732,7 +734,7 @@ L_3: //--------------------------Documents-------------------------- lhz_cube.gat,237,198,0 script Documents 111,{ - if (redkey == 1) goto L_2; + if (cubekey&2) goto L_2; mes "There are tons of documents here."; next; menu "Search the documents.",L_1,"Ignore.",-; @@ -742,7 +744,7 @@ L_1: mes "As you look through the documents, a 'red key' falls out."; next; mes "You acquired ^FF0000red key^000000."; - set redkey,1; + set cubekey,cubekey|2; close; L_2: @@ -795,7 +797,7 @@ L_2: next; input @bed$; - if (@bed$ == "long stick" && rod == 1 || @bed$ == "Long Stick" && rod == 1) goto L2_1; + if (rod == 1 && (@bed$ == "long stick" || @bed$ == "Long Stick")) goto L2_1; mes "It looks like you need some kind of long item to"; mes "Get the item out, you can't reach it!"; close; @@ -816,7 +818,7 @@ L_3: //--------------------------Cup-------------------------- lhz_cube.gat,229,184,0 script Cup 111,{ - if (fkey == 1) goto L_2; + if (cubekey&4) goto L_2; mes "You see an empty bottle and a cup with something in it."; next; menu "Leave it alone.",-,"Look what is inside.",L_1; @@ -826,7 +828,7 @@ L_1: mes "When you look inside, you see a 'rusty key'."; next; mes "You acquired the '^FF0000rusty key^000000'."; - set fkey,1; + set cubekey,cubekey|4; close; L_2: @@ -838,13 +840,13 @@ L_2: //--------------------------Shelf-------------------------- lhz_cube.gat,233,206,0 script Shelf 111,{ - if (gkey == 1) goto L_2; + if (cubekey&8) goto L_2; mes "There are lots of bottles filled with acids lined up"; mes "Along the shelf, they have different labels."; next; input @lathe$; - if (fkey == 1 && @lathe$ == "rusty key" || fkey == 1 && @lathe$ == "Rusty Key") goto L_1; + if (cubekey&4 && (@lathe$ == "rusty key" || @lathe$ == "Rusty Key")) goto L_1; mes "Nothing happened."; close; @@ -854,7 +856,7 @@ L_1: mes "All that's left is a clean, green key."; next; mes "You acquired the '^FF0000green key^000000'"; - set gkey,1; + set cubekey,cubekey|8; close; L_2: @@ -870,8 +872,8 @@ L_2: lhz_cube.gat,249,191,0 script Closet 111,{ if (polygon >= 1) goto L_4; mes "There is a closet with lots of drawers."; - if (gkey == 1) goto L_2; - if (gkey == 0) next; + if (cubekey&8) goto L_2; + next; menu "Leave it alone.",-,"Open one of the drawers.",L_1; close; @@ -964,7 +966,7 @@ L_1: next; input @knife$; - if (knife == 1 && @knife$ == "small knife" ||knife == 1 && @knife$ == "Small Knife") goto L1_1; + if (knife == 1 && (@knife$ == "small knife" || @knife$ == "Small Knife")) goto L1_1; mes "Nothing happened."; close; @@ -1046,7 +1048,7 @@ lhz_cube.gat,224,192,0 script Generator 111,{ next; input @key$; - if (ykey == 1 && @key$ == "yellow key" || ykey == 1 && @key$ == "Yellow Key") goto L_1; + if (cubekey&1 && (@key$ == "yellow key" || @key$ == "Yellow Key")) goto L_1; mes "There's nothing to do here."; close; @@ -1068,7 +1070,7 @@ L_2: //--------------------------Lamp-------------------------- lhz_cube.gat,248,205,0 script Lamp 111,{ - if (bkey == 1) goto L_3; + if (cubekey&16) goto L_3; if (machine == 1) goto L_1; mes "There is a bright lamp."; mes "Seems like there is something inside"; @@ -1087,7 +1089,7 @@ L_2: mes "'black key' falls out."; next; mes "You acquired the '^FF0000black key^000000'."; - set bkey,1; + set cubekey,cubekey|16; close; L_3: @@ -1108,7 +1110,7 @@ L_1: if (ellipse == 2) goto L1_2; input @ellipse$; - if (ellipse == 1 && @ellipse$ == "ellipse model" ||ellipse == 1 && @ellipse$ == "Ellipse Model") goto L1_1; + if (ellipse == 1 && (@ellipse$ == "ellipse model" || @ellipse$ == "Ellipse Model")) goto L1_1; mes "Nothing happened."; close; @@ -1126,7 +1128,7 @@ L_2: if (quadrangle == 2) goto L2_2; input @quadrangle$; - if (quadrangle == 1 && @quadrangle$ == "cube model" || quadrangle == 1 && @quadrangle$ == "Cube Model") goto L2_1; + if (quadrangle == 1 && (@quadrangle$ == "cube model" || @quadrangle$ == "Cube Model")) goto L2_1; mes "Nothing happened."; close; @@ -1144,7 +1146,7 @@ L_3: if (polygon == 2) goto L3_2; input @polygon$; - if (polygon == 1 && @polygon$ == "polygon model" || polygon == 1 && @polygon$ == "Polygon Model") goto L3_1; + if (polygon == 1 && (@polygon$ == "polygon model" || @polygon$ == "Polygon Model")) goto L3_1; mes "Nothing happened."; close; @@ -1189,7 +1191,7 @@ lhz_cube.gat,224,197,0 script Test Tube 111,{ next; input @key$; - if (bkey == 1 && @key$ == "black key" || bkey == 1 && @key$ == "Black Key") goto L_1; + if (cubekey&16 && (@key$ == "black key" || @key$ == "Black Key")) goto L_1; mes "Nothing happened."; close; @@ -1226,14 +1228,14 @@ L_4: L4_1: mes "It connected to a long staircase."; - close2; - set axe,0; set ykey,0; set box,0; set num1,0; + set knife,0; set axe,0; set box,0; + set cubekey,0; set machine,0; set num1,0; set num2,0; set num3,0; set num4,0; set num5,0; set num6,0; set num7,0; set num8,0; set num9,0; - set knife,0; set redkey,0; set srod1,0; set srod2,0; - set fkey,0; set gkey,0; set polygon,0; set machine,0; - set bkey,0; set ellipse,0; set quadrangle,0; set rod,0; + set rod,0; set srod1,0; set srod2,0; + set polygon,0; set ellipse,0; set quadrangle,0; set hzdun,1; + close2; warp "lhz_cube.gat",177,13; end; } diff --git a/npc/quests/skills/novice_skills.txt b/npc/quests/skills/novice_skills.txt index b777a8965..6009f9009 100644 --- a/npc/quests/skills/novice_skills.txt +++ b/npc/quests/skills/novice_skills.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= kobra_k88 //===== Current Version: ===================================== -//= 1.4 +//= 1.4b //===== Compatible With: ===================================== //= eAthena 7.15 + //===== Description: ========================================= @@ -22,18 +22,34 @@ //<---------------------------------------------------------------------------------------------- Nurse Aid: First Aid NPC ---------------------------------------------------------------------------->\\ prt_in.gat,235,133,4 script Nurse Aid 90,{ mes "[Nurse Aid]"; - if(FIRSTAID) goto L_GetAid; - if(getskilllv(142)>0) goto L_GotAid; - + if(FIRSTAID){ + if((JobLevel < 3) || (countitem(507) < 5 ) || (countitem(705) < 5) || (countitem(930) < 1)) goto sM_Yes; + delitem 507,5; + delitem 705,5; + delitem 930,1; + mes "Oh good. You have everything needed for me to teach you first aid. Here we go..."; + next; + mes "....... 1 hour later......."; + next; + skill 142,1,0; + set FIRSTAID,0; + set got_bandage,0; + mes "[Nurse Aid]"; + mes "YES! You finally got it. Now you can heal yourself and continue fighting those bad monsters. Well, take care."; + emotion e_no1; + close; + } + if(getskilllv(142)>0){ + mes "Well hello again. I really hope the First Aid skill has been helpful to you. Make sure to continue your hard work and don't forget to rest and heal!"; + close; + } mes "Oh hello there! You look tired and a little worn out. Have the monsters outside of town been giving you trouble?"; next; - menu "Ha! Me strong like BULL!!",M_Nope, "Well..um..kinda..",M_Yep; + menu "Ha! Me strong like BULL!!",-, "Well..um..kinda..",M_Yep; - M_Nope: mes "[Nurse Aid]"; mes "Oh I see. You must be a mighty warrior. Well, come back anytime if you do ever feel overwhelmed by the monsters. I'll be able to help."; close; - M_Yep: mes "[Nurse Aid]"; mes "Well don't feel bad. It can be very difficult fighting those nasty monsters in the beginning."; @@ -49,8 +65,12 @@ prt_in.gat,235,133,4 script Nurse Aid 90,{ mes "That's why I've decided to teach people how to heal themselves! Would you like me to teach you?"; emotion e_ic; next; - menu "Would you??",sM_Yes, "(...she's nuts!...run!!!)",sM_No; + menu "Would you??",sM_Yes, "(...she's nuts!...run!!!)",-; + mes "[Nurse Aid]"; + mes "Hey!...Where are you running too??..."; + emotion e_swt; + close; sM_Yes: mes "[Nurse Aid]"; mes "In order for me to teach you First Aid you need to have at least a^0000ff Job Level of 3^000000."; @@ -63,64 +83,79 @@ prt_in.gat,235,133,4 script Nurse Aid 90,{ mes "Once you get Job Level 3 and have all of the items come back and see me, OK?"; set FIRSTAID,1; close; - - sM_No: - mes "[Nurse Aid]"; - mes "Hey!...Where are you running too??..."; - emotion e_swt; - close; - -L_GetAid: - if((JobLevel < 3) || (countitem(507) < 5 ) || (countitem(705) < 5) || (countitem(930) < 1)) goto sM_Yes; - delitem 507,5; - delitem 705,5; - delitem 930,1; - mes "Oh good. You have everything needed for me to teach you first aid. Here we go..."; - next; - mes "....... 1 hour later......."; - next; - skill 142,1,0; - set FIRSTAID,0; - set got_bandage,0; - mes "[Nurse Aid]"; - mes "YES! You finally got it. Now you can heal yourself and continue fighting those bad monsters. Well, take care."; - emotion e_no1; - close; - -L_GotAid: - mes "Well hello again. I really hope the First Aid skill has been helpful to you. Make sure to continue your hard work and don't forget to rest and heal!"; - close; - } //<-------------------------------------------------------------------------------------------------- Bulma: Play Dead -------------------------------------------------------------------------------------------->\\ prt_in.gat,73,87,2 script Bulma 98,{ mes "[Bulma]"; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - mes "Yeah... I look great.... After all, I'm a Knight of the Prontera Chivalry. Kuhahahaha!"; - emotion e_heh; - next; - mes "[Bulma]"; - mes "It hasn't been that long since I became a Knight, but I still look good as one right? What do you think???"; - emotion e_hmm; - close; - -L_Novice: - if(JobLevel >= 7) goto L_Start; - mes "Hello my young friend. You remind me of myself when I was young....."; - mes "Heh heh, I really miss those days..... Wow... It's funny to think about those years now......"; - next; - mes "[Bulma]"; - mes "They were difficult.... thankfully you can use the ^5555FFPlay Dead^000000 skill when you reach a ^5555FFJob Level of 7^000000."; - mes "If you're interested in it come back and talk to me when you've leveled up a bit more."; - close; - -L_Start: - if(PLAYDEAD) goto L_GetSkill; - if(getskilllv(143)>0) goto L_GotSkill; + if(BaseJob != Job_Novice){ + mes "Yeah... I look great.... After all, I'm a Knight of the Prontera Chivalry. Kuhahahaha!"; + emotion e_heh; + next; + mes "[Bulma]"; + mes "It hasn't been that long since I became a Knight, but I still look good as one right? What do you think???"; + emotion e_hmm; + close; + } + if(JobLevel < 7){ + mes "Hello my young friend. You remind me of myself when I was young....."; + mes "Heh heh, I really miss those days..... Wow... It's funny to think about those years now......"; + next; + mes "[Bulma]"; + mes "They were difficult.... thankfully you can use the ^5555FFPlay Dead^000000 skill when you reach a ^5555FFJob Level of 7^000000."; + mes "If you're interested in it come back and talk to me when you've leveled up a bit more."; + close; + } + if(PLAYDEAD){ + if(countitem(7039)<1){ + mes "HEY! What are you doing here? It's irresponsible of you to still be here while your time is running out........."; + emotion e_gasp; + next; + mes "[Bulma]"; + mes "Now GO! Run! Run! RUN!!"; + emotion e_go; + close; + } + delitem 7039, 1; + mes "Good to see you again. Alright, lets start your training...."; + next; + mes "[Bulma]"; + mes "Let me first introduce to you the concept of 'Method Acting'. Method Acting stresses the need to understand every aspect of the role you are playing."; + next; + mes "[Bulma]"; + mes "You must learn to think, feel, and even live like your character so that you can understand his/her motivation in any given moment."; + next; + mes "[Bulma]"; + mes "Now let us use this technique to develop your ability to Play Dead!"; + mes "I want you to think like a dead person, feel like a dead person, eat, breath, sleep, kiss, etc. like a person who is dead!!!"; + next; + mes "[Bulma]"; + mes "Don't just stand there! Lay down on the ground and live life through the eyes of a dead person.... errr or don't live.... anyways just do it!!"; + next; + mes "~ several hours later ~"; + next; + mes "[Bulma]"; + mes "OK, lights, camera, ACTION! Yes... yes... YES!! That's it!! As I watch you laying there I TRULY believe that you are dead."; + mes "What a wonderful performance! BRAVO! BRAVO!"; + emotion e_gasp; + next; + mes "[Bulma]"; + mes "With the right motivation and focus you will be able to play dead anywhere at any given moment. Congratulations on mastering this skill."; + emotion e_no1; + skill 143,1,0; + set PLAYDEAD, 0; + set got_novnametag,0; + close; + } + if(getskilllv(143)>0){ + mes "Yeah.... I remember back then..... especially those embarrassing novice years... heh. Luckily there was Play Dead."; + mes "That saved me many times in the past. I'm sure it has been saving you too."; + next; + mes "[Bulma]"; + mes "Hopefully it is something you have been using well. If you have any friends who are novices, tell them about me. I will help them out as good as I can."; + close; + } mes "Hello my young friend. You remind me of myself when I was young..... Heh heh, I really miss those days....."; mes "Look at me acting all sentimental like some old man........"; next; @@ -171,70 +206,18 @@ L_Start: emotion e_go; set PLAYDEAD, 1; close; - -L_GetSkill: - if(countitem(7039)<1) goto sL_NotRdy; - delitem 7039, 1; - mes "Good to see you again. Alright, lets start your training...."; - next; - mes "[Bulma]"; - mes "Let me first introduce to you the concept of 'Method Acting'. Method Acting stresses the need to understand every aspect of the role you are playing."; - next; - mes "[Bulma]"; - mes "You must learn to think, feel, and even live like your character so that you can understand his/her motivation in any given moment."; - next; - mes "[Bulma]"; - mes "Now let us use this technique to develop your ability to Play Dead!"; - mes "I want you to think like a dead person, feel like a dead person, eat, breath, sleep, kiss, etc. like a person who is dead!!!"; - next; - mes "[Bulma]"; - mes "Don't just stand there! Lay down on the ground and live life through the eyes of a dead person.... errr or don't live.... anyways just do it!!"; - next; - mes "~ several hours later ~"; - next; - mes "[Bulma]"; - mes "OK, lights, camera, ACTION! Yes... yes... YES!! That's it!! As I watch you laying there I TRULY believe that you are dead."; - mes "What a wonderful performance! BRAVO! BRAVO!"; - emotion e_gasp; - next; - mes "[Bulma]"; - mes "With the right motivation and focus you will be able to play dead anywhere at any given moment. Congratulations on mastering this skill."; - emotion e_no1; - skill 143,1,0; - set PLAYDEAD, 0; - set got_novnametag,0; - close; - - sL_NotRdy: - mes "HEY! What are you doing here? It's irresponsible of you to still be here while your time is running out........."; - emotion e_gasp; - next; - mes "[Bulma]"; - mes "Now GO! Run! Run! RUN!!"; - emotion e_go; - close; - -L_GotSkill: - mes "Yeah.... I remember back then..... especially those embarrassing novice years... heh. Luckily there was Play Dead."; - mes "That saved me many times in the past. I'm sure it has been saving you too."; - next; - mes "[Bulma]"; - mes "Hopefully it is something you have been using well. If you have any friends who are novices, tell them about me. I will help them out as good as I can."; - close; } //Newbie Assistant------------------------------------------------------------------------------ prt_castle.gat,174,147,2 script Newbie Assistant 84,{ mes "[Newbie Assistant]"; - if(BaseJob == Job_Novice) goto L_Start; - -L_NonNov: - mes "What am I doing here? I'm just trying to help out young newbies. You remember how it was to be a newbie... confused.... lost.... heh heh."; - emotion e_what; - close; -L_Start: - if(FIRSTAID && countitem(930)==0 && got_bandage!=1){ + if(BaseJob != Job_Novice){ + mes "What am I doing here? I'm just trying to help out young newbies. You remember how it was to be a newbie... confused.... lost.... heh heh."; + emotion e_what; + close; + } + if(FIRSTAID && countitem(930)==0 && !got_bandage){ mes "So Nurse Aid sent you huh. She's a great nurse, you should feel very fortunate that she is helping you out. Here take this."; next; getitem 930,1; @@ -250,7 +233,7 @@ L_Start: emotion e_lv; close; } - if(PLAYDEAD && countitem(7039)==0 && got_novnametag!=1){ + if(PLAYDEAD && countitem(7039)==0 && !got_novnametag){ mes "So Bulma sent you uh.... okay here you go."; getitem 7039,1; set got_novnametag,1; -- cgit v1.2.3-70-g09d2