diff options
Diffstat (limited to 'npc')
32 files changed, 498 insertions, 271 deletions
diff --git a/npc/001-1_Tulimshar/_warps.txt b/npc/001-1_Tulimshar/_warps.txt index 5b6c9971..4e293337 100644 --- a/npc/001-1_Tulimshar/_warps.txt +++ b/npc/001-1_Tulimshar/_warps.txt @@ -5,4 +5,3 @@ 001-1.gat,125,20 warp toCentralTulimshar 0,-1,021-1.gat,136,146
001-1.gat,32,71 warp ToInn -1,-1,001-2.gat,25,34
001-1.gat,75,41 warp ToHouse -1,-1,001-4.gat,26,33
-001-1.gat,27,71 warp ToInnTest -1,-1,027-2.gat,106,45
diff --git a/npc/001-1_Tulimshar/tester.txt b/npc/001-1_Tulimshar/tester.txt index 76e1bca6..56408b9b 100644 --- a/npc/001-1_Tulimshar/tester.txt +++ b/npc/001-1_Tulimshar/tester.txt @@ -1,32 +1,25 @@ //testing server instant level and item NPC -001-1.gat,25,30,0 script Tester 134,{ - - mes "[Tester]"; - mes "\"You are testing this server. Would you like level 90 and equipment to help test?\""; +001-1.gat,21,25,0 script Mr. Invisible#todebug 127,{ +L_Debug: + mes "[Mr. Invisible]"; + mes "\"Do you want to go to the debug room?\""; menu - "Yes.", L_Yes, - "No.", L_No; - close; - -L_Yes: - set baselevel, 90; - getitem "WarlordHelmet", 1; - getitem "WarlordPlate", 1; - getitem "JeansChaps", 1; - getitem "LeatherGloves", 1; - getitem "FurBoots", 1; - getitem "SteelShield", 1; - getitem "Setzer", 1; - getitem "ForestBow", 1; - getitem "IronArrow", 2000; - mes "[Tester]"; - mes "\"Here you go! Enjoy your testing experience.\""; + "Send me there right away!", L_Go, + "Debug room? What's that?", L_Explain, + "No way, I'm staying right here.", -; + mes "[Mr. Invisible]"; + mes "\"If you want to go later on just talk to me again.\""; close; -L_No: - mes "[Tester]"; - mes "\"Okay.\""; +L_Go: + warp "debugroom.gat",25,25; + mes "Welcome to the dbug room. Help test everything!"; close; -} +L_Explain: + mes "[Mr. Invisible]"; + mes "\"Its a room full of de bugs.\""; + next; + goto L_Debug; +}
\ No newline at end of file diff --git a/npc/009-1_Hurnscald/_warps.txt b/npc/009-1_Hurnscald/_warps.txt index a41c63a4..4d69f6fa 100644 --- a/npc/009-1_Hurnscald/_warps.txt +++ b/npc/009-1_Hurnscald/_warps.txt @@ -1,13 +1,14 @@ -// 009-1 Hurnscald warps - -009-1.gat,49,55 warp HurnscaldSouthGate 2,-1,008-1.gat,78,82 -009-1.gat,97,36 warp HurnscaldEastGate -1,0,008-1.gat,129,60 -009-1.gat,35,30 warp ToInn -1,-1,009-2.gat,50,55 -009-1.gat,58,46 warp ToGeneralStore -1,-1,009-2.gat,27,105 -009-1.gat,59,33 warp ToArcherShop -1,-1,009-2.gat,95,29 -009-1.gat,71,30 warp ToPotionShop -1,-1,009-2.gat,130,25 -009-1.gat,80,31 warp ToHospital -1,-1,009-2.gat,149,66 -009-1.gat,72,44 warp ToMayor -1,-1,009-2.gat,113,77 -009-1.gat,91,46 warp ToBlacksmith -1,-1,009-2.gat,181,66 -009-1.gat,24,36 warp HurnscaldWestGate -1,1,008-1.gat,53,61 -009-1.gat,49,24 warp HurnscaldNorthGate 2,-1,008-1.gat,78,48 +// 009-1 Hurnscald warps
+
+009-1.gat,49,55 warp HurnscaldSouthGate 2,-1,008-1.gat,78,82
+009-1.gat,97,36 warp HurnscaldEastGate -1,0,008-1.gat,129,60
+009-1.gat,35,30 warp ToInn -1,-1,009-2.gat,50,55
+009-1.gat,58,46 warp ToGeneralStore -1,-1,009-2.gat,27,105
+009-1.gat,59,33 warp ToArcherShop -1,-1,009-2.gat,95,29
+009-1.gat,71,30 warp ToPotionShop -1,-1,009-2.gat,130,25
+009-1.gat,80,31 warp ToHospital -1,-1,009-2.gat,149,66
+009-1.gat,72,44 warp ToMayor -1,-1,009-2.gat,114,77
+009-1.gat,90,46 warp ToBlacksmithL -1,-1,009-2.gat,181,66
+009-1.gat,91,46 warp ToBlacksmithR -1,-1,009-2.gat,182,66
+009-1.gat,24,36 warp HurnscaldWestGate -1,1,008-1.gat,53,61
+009-1.gat,49,24 warp HurnscaldNorthGate 2,-1,008-1.gat,78,48
diff --git a/npc/009-2_Hurnscald/_warps.txt b/npc/009-2_Hurnscald/_warps.txt index bb75379b..17c8d7ea 100644 --- a/npc/009-2_Hurnscald/_warps.txt +++ b/npc/009-2_Hurnscald/_warps.txt @@ -1,20 +1,21 @@ -// 009-2 Hurnscald warps - -009-2.gat,75,23 warp To1stFloor 0,-1,009-2.gat,73,46 -009-2.gat,95,30 warp ToOutdoor -1,-1,009-1.gat,59,34 -009-2.gat,130,26 warp ToOutdoor -1,-1,009-1.gat,71,31 -009-2.gat,144,26 warp To2ndFloor 0,-1,009-2.gat,143,44 -009-2.gat,144,42 warp To3rdFloor 0,-1,009-2.gat,143,24 -009-2.gat,155,47 warp To1stFloor 0,-1,009-2.gat,154,63 -009-2.gat,114,46 warp To1stFloor 0,-1,009-2.gat,113,69 -009-2.gat,50,55 warp ToOutdoor -1,-1,009-1.gat,35,31 -009-2.gat,74,53 warp ToCellar -1,-1,009-2.gat,143,81 -009-2.gat,74,45 warp To2ndFloor 0,-1,009-2.gat,74,23 -009-2.gat,114,78 warp ToOutdoor 0,-1,009-1.gat,72,45 -009-2.gat,114,68 warp To2ndFloor 0,-1,009-2.gat,113,46 -009-2.gat,149,67 warp ToOutdoor -1,-1,009-1.gat,80,32 -009-2.gat,143,79 warp To1stFloor -1,-1,009-2.gat,74,52 -009-2.gat,155,62 warp To2ndFloor 0,-1,009-2.gat,154,46 -009-2.gat,182,67 warp ToOutdoor 0,-1,009-1.gat,91,47 -009-2.gat,147,89 warp ToCaveBeneathHurnscald -1,-1,009-3.gat,173,22 -009-2.gat,27,106 warp ToOutdoor -1,-1,009-1.gat,58,47 +// 009-2 Hurnscald warps
+
+009-2.gat,75,23 warp To1stFloor 0,-1,009-2.gat,73,46
+009-2.gat,95,30 warp ToOutdoor -1,-1,009-1.gat,59,34
+009-2.gat,130,26 warp ToOutdoor -1,-1,009-1.gat,71,31
+009-2.gat,144,26 warp To2ndFloor 0,-1,009-2.gat,143,44
+009-2.gat,144,42 warp To3rdFloor 0,-1,009-2.gat,143,24
+009-2.gat,155,47 warp To1stFloor 0,-1,009-2.gat,154,63
+009-2.gat,114,46 warp To1stFloor 0,-1,009-2.gat,113,69
+009-2.gat,50,55 warp ToOutdoor -1,-1,009-1.gat,35,31
+009-2.gat,74,53 warp ToCellar -1,-1,009-2.gat,143,81
+009-2.gat,74,45 warp To2ndFloor 0,-1,009-2.gat,74,23
+009-2.gat,114,78 warp ToOutdoor 0,-1,009-1.gat,72,45
+009-2.gat,114,68 warp To2ndFloor 0,-1,009-2.gat,113,46
+009-2.gat,149,67 warp ToOutdoor -1,-1,009-1.gat,80,32
+009-2.gat,143,79 warp To1stFloor -1,-1,009-2.gat,74,52
+009-2.gat,155,62 warp To2ndFloor 0,-1,009-2.gat,154,46
+009-2.gat,181,67 warp ToOutdoor -1,-1,009-1.gat,90,47
+009-2.gat,182,67 warp ToOutdoor -1,-1,009-1.gat,91,47
+009-2.gat,147,89 warp ToCaveBeneathHurnscald -1,-1,009-3.gat,173,22
+009-2.gat,27,106 warp ToOutdoor -1,-1,009-1.gat,58,47
diff --git a/npc/009-2_Hurnscald/airlia.txt b/npc/009-2_Hurnscald/airlia.txt index bc1bd1f4..09900238 100644 --- a/npc/009-2_Hurnscald/airlia.txt +++ b/npc/009-2_Hurnscald/airlia.txt @@ -99,9 +99,15 @@ L_Airlia_intro: mes "\"My poor father, doomed to that awful cemetery.\""; next; - if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NO_NEW_LETTER) - menu - "...", -; + // CASE REMOVED: + // This step is pointless and just forces the player to make a selection that doesn't effect anything. + // ALSO it misses the case where QUEST_Graveyard_Caretaker == 3, in this case it proceeds to the message without wasting player clicks + // Removing this check will make execution the same for QUEST_Graveyard_Caretaker == 3 and QUEST_Graveyard_Caretaker == 4 + // If for some reason this is desireable, uncomment it and make sure to catch the extra case mentioned + // + //if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NO_NEW_LETTER) + // menu + // "...", -; if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER) menu @@ -166,17 +172,40 @@ L_Airlia_intro_proof: L_Fetch: mes "[Airlia]"; mes "\"Thank you for helping my father.\""; - next; - - if (QUEST_Airlia < @Q_STATUS_INITIAL_FETCH_REWARDED) + next; + + // Make sure to check if the player has a letter to deliver. + // If the check is not made then there is a bug, where the player + // has a letter but has not completed the initial fetch + // and is prevented from turing in the letter until the fetch is completed. + // + if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER) menu "You are welcome.", -, "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward; - if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED) + if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER) menu "You are welcome.", -, - "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards; + "I have another letter from your father.", L_Caretaker_later_rewards, + "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward; + + // The following checks are REDUNDANT + // The only way to get to this lable is after a check for QUEST_Airlia == @Q_STATUS_HELP_AIRLIA + // Incase you weren't paying attention: @Q_STATUS_HELP_AIRLIA = 1 < @Q_STATUS_INITIAL_FETCH_REWARDED + // Note: proper handling of the first case is done above. + // The second case never gets executed anyway and not handled. + // + //if (QUEST_Airlia < @Q_STATUS_INITIAL_FETCH_REWARDED) + // menu + // "You are welcome.", -, + // "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward; + // + //if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED) + // menu + // "You are welcome.", -, + // "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards; + close; L_Fetch_initial_reward: @@ -226,10 +255,12 @@ L_Rewarded: if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER) menu + "You are welcome.", -, "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards; if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER) menu + "You are welcome.", -, "I have another letter from your father.", L_Caretaker_later_rewards, "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards; diff --git a/npc/011-3_Hermits_cave/_warps.txt b/npc/011-3_Hermits_cave/_warps.txt index be9b6a83..b2efd78b 100644 --- a/npc/011-3_Hermits_cave/_warps.txt +++ b/npc/011-3_Hermits_cave/_warps.txt @@ -1,3 +1,3 @@ -// 011-3 Hermit's cave warps - -011-3.gat,31,21 warp ToLakeCave -1,-1,011-4.gat,72,11 +// 011-3 Hermit's cave warps
+
+011-3.gat,31,21 warp ToLakeCave -1,-1,011-4.gat,72,10
diff --git a/npc/011-4_Lake_cave/_warps.txt b/npc/011-4_Lake_cave/_warps.txt index e0fe5a00..6d255a4d 100644 --- a/npc/011-4_Lake_cave/_warps.txt +++ b/npc/011-4_Lake_cave/_warps.txt @@ -1,4 +1,4 @@ -// 011-4 Lake cave warps - -011-4.gat,73,8 warp ToHermitsCave 0,-1,011-3.gat,31,24 -011-4.gat,129,86 warp ToCaveBeneathHurnscald -1,-1,009-3.gat,21,55 +// 011-4 Lake cave warps
+
+011-4.gat,73,8 warp ToHermitsCave 0,-1,011-3.gat,31,23
+011-4.gat,129,86 warp ToCaveBeneathHurnscald -1,-1,009-3.gat,21,55
diff --git a/npc/027-1_Graveyard/golbenez.txt b/npc/027-1_Graveyard/golbenez.txt index c74c9827..3e46494b 100644 --- a/npc/027-1_Graveyard/golbenez.txt +++ b/npc/027-1_Graveyard/golbenez.txt @@ -1,51 +1,51 @@ -// - -027-1.gat,68,89,0 script #Golbenez#_M 204,{ - if ($Golbenez_Inn_Cost >= 500000000) goto Golbenez_Inn_Enough; - - mes "[Voice]"; - mes "\"Mortal! I am Golbenez! I have broken through the barriers of space and time!\""; - next; - mes "\"For eons I've traveled through existence, tapping powers the living shall never touch. I now offer my powers for your enjoyment. In your world, places of leisure bring a desirable break from the threats of life. I shall create such a place. This place will be free from the threats found on your world as well as mine.\""; - next; - mes "\"It is difficult to create portals from my realm to yours. It is also difficult to create dimensions isolated from the threats that may seek to do you harm. For this reason I demand a hefty fee. For 500 million of your gold pieces I will create this place. This need not come just from you, but it must be delivered from the people of your world to me.\""; - next; - mes "\"So far, you have brought me " + Golbenez_Inn_Cost + " gold pieces. The people of your world have brought me " + $Golbenez_Inn_Cost + " gold pieces. How much would you like to give?\""; - - set @mult, 1; - menu - "I'd like to give a little.", Golbenez_Little, - "I'd like to give thousands.", Golbenez_Thousands, - "Nevermind.", Golbenez_Nevermind; - - -Golbenez_Thousands: - set @mult, 1000; - -Golbenez_Little: - input @Give; - - set @Give, @Give * @mult; - - if (@Give <= 0) close; - if (zeny < @Give) goto Golbenez_Inn_NotEnoughZeny; - set Golbenez_Inn_Cost, Golbenez_Inn_Cost + @Give; - set $Golbenez_Inn_Cost, $Golbenez_Inn_Cost + @Give; - set zeny, zeny - @Give; - close; - -Golbenez_Inn_NotEnoughZeny: - mes "[Voice]"; - mes "\"You don't have as much as you say you do. Come back when you can give the gold pieces you say you can.\""; - close; - -Golbenez_Nevermind: - mes "[Voice]"; - mes "\"That's too bad.\""; - close; - -Golbenez_Inn_Enough: - mes "[Voice]"; - mes "\"I now have enough to create the place of leisure. Once I have anchored it to this world, you will know.\""; - close; -} +//
+
+027-1.gat,68,89,0 script #Golbenez#_M 307,{
+ if ($Golbenez_Inn_Cost >= 500000000) goto Golbenez_Inn_Enough;
+
+ mes "[Voice]";
+ mes "\"Mortal! I am Golbenez! I have broken through the barriers of space and time!\"";
+ next;
+ mes "\"For eons I've traveled through existence, tapping powers the living shall never touch. I now offer my powers for your enjoyment. In your world, places of leisure bring a desirable break from the threats of life. I shall create such a place. This place will be free from the threats found on your world as well as mine.\"";
+ next;
+ mes "\"It is difficult to create portals from my realm to yours. It is also difficult to create dimensions isolated from the threats that may seek to do you harm. For this reason I demand a hefty fee. For 500 million of your gold pieces I will create this place. This need not come just from you, but it must be delivered from the people of your world to me.\"";
+ next;
+ mes "\"So far, you have brought me " + Golbenez_Inn_Cost + " gold pieces. The people of your world have brought me " + $Golbenez_Inn_Cost + " gold pieces. How much would you like to give?\"";
+
+ set @mult, 1;
+ menu
+ "I'd like to give a little.", Golbenez_Little,
+ "I'd like to give thousands.", Golbenez_Thousands,
+ "Nevermind.", Golbenez_Nevermind;
+
+
+Golbenez_Thousands:
+ set @mult, 1000;
+
+Golbenez_Little:
+ input @Give;
+
+ set @Give, @Give * @mult;
+
+ if (@Give <= 0) close;
+ if (zeny < @Give) goto Golbenez_Inn_NotEnoughZeny;
+ set Golbenez_Inn_Cost, Golbenez_Inn_Cost + @Give;
+ set $Golbenez_Inn_Cost, $Golbenez_Inn_Cost + @Give;
+ set zeny, zeny - @Give;
+ close;
+
+Golbenez_Inn_NotEnoughZeny:
+ mes "[Voice]";
+ mes "\"You don't have as much as you say you do. Come back when you can give the gold pieces you say you can.\"";
+ close;
+
+Golbenez_Nevermind:
+ mes "[Voice]";
+ mes "\"That's too bad.\"";
+ close;
+
+Golbenez_Inn_Enough:
+ mes "[Voice]";
+ mes "\"I now have enough to create the place of leisure. Once I have anchored it to this world, you will know.\"";
+ close;
+}
diff --git a/npc/027-2_Caretakers_House/_import.txt b/npc/027-2_Caretakers_House/_import.txt index cc783991..e288d6cb 100644 --- a/npc/027-2_Caretakers_House/_import.txt +++ b/npc/027-2_Caretakers_House/_import.txt @@ -4,4 +4,4 @@ npc: npc/027-2_Caretakers_House/_warps.txt npc: npc/027-2_Caretakers_House/caretaker.txt
npc: npc/027-2_Caretakers_House/alacrius.txt
npc: npc/027-2_Caretakers_House/gy_inn_shops.txt
-npc: npc/027-2_Caretakers_House/testnpcs.txt
+npc: npc/027-2_Caretakers_House/testnpcs.txt
\ No newline at end of file diff --git a/npc/027-2_Caretakers_House/_warps.txt b/npc/027-2_Caretakers_House/_warps.txt index bf9c47ac..c1bfeb92 100644 --- a/npc/027-2_Caretakers_House/_warps.txt +++ b/npc/027-2_Caretakers_House/_warps.txt @@ -8,7 +8,9 @@ 027-2.gat,127,35,0 warp ToInnSecondFloorL -1,-1,027-2.gat,75,92 027-2.gat,128,35,0 warp ToInnSecondFloorR -1,-1,027-2.gat,76,92 -027-2.gat,106,46,0 warp ToTulimshar 1,-1,001-1.gat,27,72 +027-2.gat,106,46,0 warp GYInnExit 1,-1,debugroom.gat,30,27 + +027-2.gat,111,37,0 warp ToReaper 1,-1,027-4.gat,40,38 diff --git a/npc/027-2_Caretakers_House/alacrius.txt b/npc/027-2_Caretakers_House/alacrius.txt index a48a64aa..eee471ad 100755 --- a/npc/027-2_Caretakers_House/alacrius.txt +++ b/npc/027-2_Caretakers_House/alacrius.txt @@ -1,117 +1,40 @@ // Starts the reaper quest
-// NOTE: just a copy paste of kastor's script. It hasnt been tested and needs a major reworking.
-
027-2.gat,104,39,0 script Alacrius 313,{
- if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_Enjoy;
-
-
- mes "[ALACRIUS]";
- mes "\"Hello, I'm Alacrius. \"";
- next;
- mes "[ALACRIUS]";
- mes "\"Very long time ago, i figured a way to cheat the death and the limits of time and space. You may think it actually is evil, but I made it because of true love... \"";
- next;
- mes "[ALACRIUS]";
- mes "\"The reaper kidnapped my beloved wife, and took her to the underworld, so I had to find a way to stop him, and as time went by, I became what you can see now... But if you dare to cheat death, time and space you'll have to pay a high price... \"";
- next;
-
- mes "[ALACRIUS]";
- mes "\"Being away from the time and space doesn't allow me to try to save my beloved wife... I need your help, do you think you have what it takes to handle the most powerful monsters over the world of Mana? \"";
- next;
-
- menu
- "Let's go",L_PLAY_OK,
- "No thank you",-;
- close;
-
-
-L_PLAY_OK:
-
- if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_AlreadyStarted;
- set $@FIGHT_ALACRIUS_STATUS, 1;
- set $@MO_REAPER, 0;
- startnpctimer;
- set @PRIZE, 1;
-
- goto L_Exit;
-
-L_Enjoy:
- if ($@MO_REAPER == 1) goto L_AllDead;
- mes "[ALACRIUS]";
- mes "\"...Please hurry up, the time is running...\"";
- goto L_Exit;
-
-L_AlreadyStarted:
- mes "[ALACRIUS]";
- mes "\"The Reaper is alive.\"";
- goto L_Exit;
-
-L_Exit:
- close;
- end;
-
-
-// Time to fight
-OnTimer10000:
-
- monster "027-2.gat",0,0,"Hunter Quest1",1003,1,"Alacrius::OnDeadReaper";
- monster "027-2.gat",0,0,"Hunter Quest2",1002,6,"Alacrius::OnDeadLost";
-
- end;
-
-OnDeadReaper:
- set $@MO_REAPER, $@MO_REAPER + 1;
- killmonster "027-2.gat","All";
- end;
-
-OnDeadLost:
- set $@MO_LOST, $@MO_LOST + 1;
- end;
-
-
-OnTimer120000:
-
- set $@MO_REAPER,0;
- set $@FIGHT_ALACRIUS_STATUS, 0;
- killmonster "027-2.gat","All";
- stopnpctimer;
- setnpctimer 0;
- set @PRIZE, 0;
- npctalk "Oh my beloved wife, you could not have been rescued! I will have to purge my mistakes again...";
- npctalk "Please, help my beloved wife!!";
-
- end;
-
-OnDead:
- end;
-
-
-L_AllDead:
- if(@PRIZE == 0) goto L_NOHERO;
-
- getinventorylist;
- if (@inventorylist_count == 100) goto L_TooMany;
- getitem "CasinoCoins", 1;
-
- mes "[ALACRIUS]";
- mes "Thank you very much, you saved my love!! Here you are, a prize according to the dangers you've been exposed to.";
- set @PRIZE , 0;
- set $@MO_REAPER,0;
- close;
- end;
-
-L_TooMany:
- mes "[ALACRIUS]";
- mes "You have no room for the reward.";
- close;
-
-L_NOHERO:
- mes "[ALACRIUS]";
- mes "Sorry, but you didn't save my love... Try it again when you're ready...";
- close;
- end;
-OnInit:
- initnpctimer;
- stopnpctimer;
-}
\ No newline at end of file + // if started, go to started
+ // if fail go to failed
+ // if complete go to complete
+ // if cooldown go to cooldown
+
+// start quest section
+ mes "hi want to fight the reaper?";
+ menu
+ "Let's go",L_START,
+ "No thank you",-;
+ close;
+
+L_START:
+ monster "027-4.gat",40,55,"Reaper Quest",1111,1,"Reaper::OnDead";
+ enablenpc "#gatecontrol";
+ enablenpc "#closedgate";
+ disablenpc "#opengate";
+// Open doors to reaper level
+ warp "027-3.gat",41,70;
+ initnpctimer;
+ close;
+
+// 5 min mark for testing purposes, up it when finished.
+OnTimer300000:
+ mapwarp "027-3.gat", "027-2.gat",104,41;
+ mapwarp "027-4.gat", "027-2.gat",104,41;
+ killmonsterall "027-4.gat";
+ end;
+OnTimer301000:
+ npctalk "You have failed the mission";
+ end;
+
+// cooldown before the quest can be restarted
+OnTimer360000:
+ // set quest var
+ end;
+}
diff --git a/npc/027-2_Caretakers_House/alacrius2.txt b/npc/027-2_Caretakers_House/alacrius2.txt new file mode 100755 index 00000000..70cf0c42 --- /dev/null +++ b/npc/027-2_Caretakers_House/alacrius2.txt @@ -0,0 +1,113 @@ +// Starts the reaper quest
+
+027-2.gat,104,39,0 script Alacrius 313,{
+ if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_Enjoy;
+
+
+ mes "[ALACRIUS]";
+ mes "\"Hello, I'm Alacrius. \"";
+ next;
+ mes "[ALACRIUS]";
+ mes "\"Very long time ago, i figured a way to cheat the death and the limits of time and space. You may think it actually is evil, but I made it because of true love... \"";
+ next;
+ mes "[ALACRIUS]";
+ mes "\"The reaper kidnapped my beloved wife, and took her to the underworld, so I had to find a way to stop him, and as time went by, I became what you can see now... But if you dare to cheat death, time and space you'll have to pay a high price... \"";
+ next;
+
+ mes "[ALACRIUS]";
+ mes "\"Being away from the time and space doesn't allow me to try to save my beloved wife... I need your help, do you think you have what it takes to handle the most powerful monsters over the world of Mana? \"";
+ next;
+
+ menu
+ "Let's go",L_PLAY_OK,
+ "No thank you",-;
+ close;
+
+
+L_PLAY_OK:
+
+ if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_AlreadyStarted;
+ set $@FIGHT_ALACRIUS_STATUS, 1;
+ set $@MO_REAPER, 0;
+ startnpctimer;
+ set @PRIZE, 1;
+
+ goto L_Exit;
+
+L_Enjoy:
+ if ($@MO_REAPER == 1) goto L_AllDead;
+ mes "[ALACRIUS]";
+ mes "\"...Please hurry up, the time is running...\"";
+ goto L_Exit;
+
+L_AlreadyStarted:
+ mes "[ALACRIUS]";
+ mes "\"The Reaper is alive.\"";
+ goto L_Exit;
+
+L_Exit:
+ close;
+ end;
+
+
+// Time to fight
+OnTimer10000:
+
+ monster "027-2.gat",0,0,"Reaper Quest",1111,1,"Alacrius::OnDeadReaper";
+ end;
+
+OnDeadReaper:
+ set $@MO_REAPER, $@MO_REAPER + 1;
+ killmonster "027-2.gat","All";
+ end;
+
+OnDeadLost:
+ set $@MO_LOST, $@MO_LOST + 1;
+ end;
+
+
+OnTimer120000:
+
+ set $@MO_REAPER,0;
+ set $@FIGHT_ALACRIUS_STATUS, 0;
+ killmonster "027-2.gat","All";
+ stopnpctimer;
+ setnpctimer 0;
+ set @PRIZE, 0;
+ npctalk "Oh my beloved wife, you could not have been rescued! I will have to purge my mistakes again...";
+ npctalk "Please, help my beloved wife!!";
+
+ end;
+
+OnDead:
+ end;
+
+
+L_AllDead:
+ if(@PRIZE == 0) goto L_NOHERO;
+
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
+ getitem "CasinoCoins", 1;
+
+ mes "[ALACRIUS]";
+ mes "Thank you very much, you saved my love!! Here you are, a prize according to the dangers you've been exposed to.";
+ set @PRIZE , 0;
+ set $@MO_REAPER,0;
+ close;
+ end;
+
+L_TooMany:
+ mes "[ALACRIUS]";
+ mes "You have no room for the reward.";
+ close;
+
+L_NOHERO:
+ mes "[ALACRIUS]";
+ mes "Sorry, but you didn't save my love... Try it again when you're ready...";
+ close;
+ end;
+OnInit:
+ initnpctimer;
+ stopnpctimer;
+}
\ No newline at end of file diff --git a/npc/027-3_Crypt/_import.txt b/npc/027-3_Crypt/_import.txt index e6c51628..627fe137 100755 --- a/npc/027-3_Crypt/_import.txt +++ b/npc/027-3_Crypt/_import.txt @@ -1,3 +1,7 @@ -map: 027-3.gat -npc: npc/027-3_Crypt/_mobs.txt -npc: npc/027-3_Crypt/_warps.txt +map: 027-3.gat
+npc: npc/027-3_Crypt/_mobs.txt
+npc: npc/027-3_Crypt/_warps.txt
+npc: npc/027-3_Crypt/mapflags.txt
+npc: npc/027-3_Crypt/entrance.txt
+npc: npc/027-3_Crypt/caskets.txt
+npc: npc/027-3_Crypt/test.txt
diff --git a/npc/027-3_Crypt/_mobs.txt b/npc/027-3_Crypt/_mobs.txt index 29ff7685..2e423ee7 100755 --- a/npc/027-3_Crypt/_mobs.txt +++ b/npc/027-3_Crypt/_mobs.txt @@ -1,3 +1,3 @@ // 027-3 Crypt mobs
-027-3.gat,40,38,0,0 monster TheLost 1063,1,8000,2000,0
+//027-3.gat,40,38,0,0 monster TheLost 1063,1,8000,2000,0
diff --git a/npc/027-3_Crypt/_warps.txt b/npc/027-3_Crypt/_warps.txt index 745a75c2..295215ca 100755 --- a/npc/027-3_Crypt/_warps.txt +++ b/npc/027-3_Crypt/_warps.txt @@ -2,7 +2,4 @@ 027-3.gat,126,44,0 warp ToReaperL -1,-1,027-4.gat,36,21
027-3.gat,127,44,0 warp ToReaperM -1,-1,027-4.gat,37,21
-027-3.gat,128,44,0 warp ToReaperR -1,-1,027-4.gat,38,21
-
-// Temp
-027-3.gat,41,75,0 warp ToInnFirstFloor 4,-1,027-2.gat,106,45
+027-3.gat,128,44,0 warp ToReaperR -1,-1,027-4.gat,38,21
\ No newline at end of file diff --git a/npc/027-3_Crypt/caskets.txt b/npc/027-3_Crypt/caskets.txt new file mode 100755 index 00000000..c7ae44bd --- /dev/null +++ b/npc/027-3_Crypt/caskets.txt @@ -0,0 +1,7 @@ +// Casket monster traps and key puzzle.
+027-3.gat,40,35,0 script #casket1 127,1,1{
+ heal 3,0;
+ specialeffect 301;
+ specialeffect 302;
+ end;
+}
\ No newline at end of file diff --git a/npc/027-3_Crypt/entrance.txt b/npc/027-3_Crypt/entrance.txt new file mode 100755 index 00000000..f8da11b8 --- /dev/null +++ b/npc/027-3_Crypt/entrance.txt @@ -0,0 +1,41 @@ +// Effects for opening and closing the gate. Also set it so no new player can't be warped in once the gate is opened.
+
+027-3.gat,40,57,0 script #gatecontrol 127, 2, 1{
+ mes "Once you pass this point I cannot warp anyone else to help.";
+ mes "Are you sure you are ready to go?";
+ menu
+ "Let's go",L_BEGIN,
+ "No thank you",-;
+ warp "027-3.gat",40,60;
+ close;
+
+L_BEGIN:
+ disablenpc "#closedgate";
+ initnpctimer;
+ specialeffect 300;
+ // add stop alacrius warp flag to temp globals
+ close;
+
+OnTimer2000:
+ enablenpc "#opengate";
+ disablenpc "#gatecontrol";
+ end;
+}
+
+027-3.gat,40,59,0 script #closedgate 322,{
+ end;
+}
+027-3.gat,40,59,0 script #opengate 323,{
+ end;
+}
+
+
+// Effects for the exit.
+
+027-3.gat,40,78,0 script #cryptexit2 127, 3, 3{
+ mes "Unfortunately, once I bring you to this pocket";
+ mes "in time you cannot leave through its normal exit.";
+ mes "The only way to get out is to defeat the reaper";
+ mes "or die...";
+ close;
+}
\ No newline at end of file diff --git a/npc/027-3_Crypt/mapflags.txt b/npc/027-3_Crypt/mapflags.txt new file mode 100755 index 00000000..533b7a6c --- /dev/null +++ b/npc/027-3_Crypt/mapflags.txt @@ -0,0 +1 @@ +027-3.gat mapflag nosave 027-2,104,41;
diff --git a/npc/027-3_Crypt/test.txt b/npc/027-3_Crypt/test.txt new file mode 100755 index 00000000..0f353a8d --- /dev/null +++ b/npc/027-3_Crypt/test.txt @@ -0,0 +1,8 @@ +027-3.gat,40,25,0 script zombifier 200,1,1{
+ npctalk "If you die in the crypt, you are turned into a zombie";
+ end;
+OnPCDieEvent:
+ npctalk "The corpse of " + strcharinfo(0) + " has risen";
+ monster "027-3.gat",41,25,"Corpse",1036,1,"Reaper::OnAvenged";
+ end;
+}
diff --git a/npc/027-4_Reaper/_import.txt b/npc/027-4_Reaper/_import.txt index 0670db1e..78db21ba 100755 --- a/npc/027-4_Reaper/_import.txt +++ b/npc/027-4_Reaper/_import.txt @@ -1,3 +1,5 @@ -map: 027-4.gat -npc: npc/027-4_Reaper/_mobs.txt -npc: npc/027-4_Reaper/_warps.txt +map: 027-4.gat
+npc: npc/027-4_Reaper/_mobs.txt
+npc: npc/027-4_Reaper/_warps.txt
+npc: npc/027-4_Reaper/mapflags.txt
+npc: npc/027-4_Reaper/reaper_script.txt
diff --git a/npc/027-4_Reaper/_mobs.txt b/npc/027-4_Reaper/_mobs.txt index b4a360fa..50c5d033 100755 --- a/npc/027-4_Reaper/_mobs.txt +++ b/npc/027-4_Reaper/_mobs.txt @@ -1,3 +1 @@ -// 027-4 Reaper mobs - -027-4.gat,40,38,0,0 monster Reaper 1111,1,8000,2000,0
\ No newline at end of file +// 027-4 Reaper mobs
diff --git a/npc/027-4_Reaper/mapflags.txt b/npc/027-4_Reaper/mapflags.txt new file mode 100755 index 00000000..791565cf --- /dev/null +++ b/npc/027-4_Reaper/mapflags.txt @@ -0,0 +1 @@ +027-4.gat mapflag nosave 027-2,104,41;
diff --git a/npc/027-4_Reaper/reaper_script.txt b/npc/027-4_Reaper/reaper_script.txt new file mode 100755 index 00000000..b09a2399 --- /dev/null +++ b/npc/027-4_Reaper/reaper_script.txt @@ -0,0 +1,15 @@ +// The scripts associated with the reaper mob summoned by Alacrius in the 027-2
+
+027-4.gat,0,0,0 script Reaper -1,{
+OnDead:
+ mes "you won!";
+ mapwarp "027-4.gat", "027-2.gat",104,41;
+ close;
+
+OnPCDieEvent:
+ // summon a zombie and give a message and sfx
+ end;
+OnAvenged:
+ // tell players your fallen comrad has been avenged
+ end;
+}
\ No newline at end of file diff --git a/npc/029-1_Candor/barrier.txt b/npc/029-1_Candor/barrier.txt index cbbecaea..a5970bec 100644 --- a/npc/029-1_Candor/barrier.txt +++ b/npc/029-1_Candor/barrier.txt @@ -1,8 +1,8 @@ -029-1.gat,53,36,0 script #CandorBarrier 127,1,1,{ - if ($@FIGHT_CAVE_STATUS != 0) goto L_Block; - warp "029-3.gat", 47, 22; - end; - - L_Block: - message strcharinfo(0), "Some force seems to be blocking you from entering."; -} +029-1.gat,53,36,0 script #CandorBarrier 127,1,1,{
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_Block;
+ warp "029-3.gat", 46, 23;
+ end;
+
+ L_Block:
+ message strcharinfo(0), "Some force seems to be blocking you from entering.";
+}
diff --git a/npc/029-3_Fight_Cave/barrier.txt b/npc/029-3_Fight_Cave/barrier.txt index 5afd8da9..85655adb 100644 --- a/npc/029-3_Fight_Cave/barrier.txt +++ b/npc/029-3_Fight_Cave/barrier.txt @@ -1,8 +1,8 @@ -029-3.gat,45,20,0 script #FightCaveBarrier 127,1,1,{ - if ($@FIGHT_CAVE_STATUS != 0) goto L_Block; - warp "029-1.gat", 55, 38; - end; - - L_Block: - message strcharinfo(0), "Some force seems to be blocking you from exiting."; -} +029-3.gat,45,20,0 script #FightCaveBarrier 127,1,1,{
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_Block;
+ warp "029-1.gat", 54, 39;
+ end;
+
+ L_Block:
+ message strcharinfo(0), "Some force seems to be blocking you from exiting.";
+}
diff --git a/npc/_import.txt b/npc/_import.txt index ba724abc..083e2fbe 100644 --- a/npc/_import.txt +++ b/npc/_import.txt @@ -62,3 +62,4 @@ import: npc/028-3/_import.txt import: npc/029-1_Candor/_import.txt
import: npc/029-3_Fight_Cave/_import.txt
import: npc/botcheck/_import.txt
+import: npc/debugroom/_import.txt
diff --git a/npc/debugroom/_import.txt b/npc/debugroom/_import.txt new file mode 100755 index 00000000..f9fad285 --- /dev/null +++ b/npc/debugroom/_import.txt @@ -0,0 +1,6 @@ +map: debugroom.gat +npc: npc/debugroom/_mobs.txt +npc: npc/debugroom/_warps.txt +npc: npc/debugroom/tester.txt +npc: npc/debugroom/reaper-test.txt +npc: npc/debugroom/weapon-test.txt
\ No newline at end of file diff --git a/npc/debugroom/_mobs.txt b/npc/debugroom/_mobs.txt new file mode 100755 index 00000000..e69de29b --- /dev/null +++ b/npc/debugroom/_mobs.txt diff --git a/npc/debugroom/_warps.txt b/npc/debugroom/_warps.txt new file mode 100755 index 00000000..e69de29b --- /dev/null +++ b/npc/debugroom/_warps.txt diff --git a/npc/debugroom/reaper-test.txt b/npc/debugroom/reaper-test.txt new file mode 100755 index 00000000..162b3977 --- /dev/null +++ b/npc/debugroom/reaper-test.txt @@ -0,0 +1,43 @@ +//testing server instant level and item NPC
+
+debugroom.gat,30,25,0 script gy-inn-test 307,{
+
+ mes "[Tester]";
+ mes "\"This is to test out the reaper quest and the gy-inn. The recommended level for this quest is 95+ \"";
+ menu
+ "Spec me up to lvl95 with gear.", L_Spec,
+ "Take me to the graveyard inn.", L_Inn,
+ "Take me to the crypt.", L_Cryp,
+ "Take me to the reaper.", L_Reap,
+ "Nevemind.", L_Nvm;
+ close;
+
+L_Spec:
+ set baselevel, 90;
+ getitem "WarlordHelmet", 1;
+ getitem "WarlordPlate", 1;
+ getitem "JeansChaps", 1;
+ getitem "LeatherGloves", 1;
+ getitem "FurBoots", 1;
+ getitem "SteelShield", 1;
+ getitem "Setzer", 1;
+ getitem "ForestBow", 1;
+ getitem "IronArrow", 2000;
+ mes "[Tester]";
+ mes "\"Here you go! Enjoy your testing experience.\"";
+ close;
+L_Inn:
+ warp "027-2.gat",104,41;
+ close;
+L_Cryp:
+ warp "027-3.gat",41,70;
+ close;
+L_Reap:
+ monster "027-4.gat",40,55,"Reaper Quest",1111,1,"Reaper::OnDead";
+ warp "027-4.gat",40,30;
+ close;
+L_Nvm:
+ mes "[Tester]";
+ mes "\"Okay.\"";
+ close;
+}
diff --git a/npc/debugroom/tester.txt b/npc/debugroom/tester.txt new file mode 100755 index 00000000..5efaf210 --- /dev/null +++ b/npc/debugroom/tester.txt @@ -0,0 +1,24 @@ +//testing server instant level and item NPC + +debugroom.gat,25,23,0 script Tester#Out 134,{ + + mes "[Tester]"; + mes "\"Explenation.... \""; + menu + "Warp back to Tulimshar", L_Yes, + "Set save point here", L_Do_Save, + "Nevemind.", L_No; + close; + + +L_Yes: + warp "001-1.gat",28,74; + close; +L_Do_Save: + savepoint "debugroom.gat",25,25; + close; +L_Nvm: + mes "[Tester]"; + mes "\"Okay.\""; + close; +} diff --git a/npc/debugroom/weapon-test.txt b/npc/debugroom/weapon-test.txt new file mode 100755 index 00000000..123edf97 --- /dev/null +++ b/npc/debugroom/weapon-test.txt @@ -0,0 +1,16 @@ +//testing server instant level and item NPC + +debugroom.gat,15,21,0 script WeaponsTest 114,{ + + mes "[Weapons Tester]"; + mes "\"Explenation.... \""; + menu + "Creater test dummy", L_Yes, + "Nevemind.", -; + close; + + +L_Yes: + monster "debugroom.gat",18,25,"Funny",1999,1,0; + close; +} |