OSDN Git Service

First version
[st-ro/stro.git] / npc / re / instances / MalangdoCulvert.txt
1 //===== rAthena Script ======================================= 
2 //= Malangdo Culvert
3 //===== By: ================================================== 
4 //= Euphy
5 //===== Current Version: ===================================== 
6 //= 1.1
7 //===== Compatible With: ===================================== 
8 //= rAthena Project
9 //===== Description: ========================================= 
10 //= [Official Conversion]
11 //= Clean the culverts and defeat the Coelacanth.
12 //= Daily and weekly quests are available.
13 //= Contains a normal mode and hard mode.
14 //===== Additional Comments: ================================= 
15 //= 1.0 First version. [Euphy]
16 //=     Letters "n" and "h" in NPC names indicate difficulty.
17 //= 1.0a There is no minimum party size on official servers.
18 //= 1.0b Fixed incorrect use of 'close'. [Joseph]
19 //= 1.1 Instance system rewrite. [Euphy]
20 //============================================================ 
21
22 // Quest NPCs :: mal_yong
23 //============================================================
24 mal_in01,172,28,2       script  Albo#mal        561,{
25         if (checkweight(1201,1) == 0) {
26                 mes "You have too many kinds of objects. Try to continue after reducing those objects.";
27                 close;
28         }
29         if (MaxWeight - Weight < 1000) {
30                 mes "You have too many heavy objects. Try to continue after reducing your weight.";
31                 close;
32         }
33         if (BaseLevel < 90) {
34                 mes "[Albo]";
35                 mes "Who are you?";
36                 mes "We don't need a weaking!!";
37                 close;
38         }
39         setarray .@quests[0],12271,12272,12273,12274;
40         setarray .@names$[0],
41                 "General Culvert Daily Service","^990000Hard Culvert Daily Service^000000",
42                 "General Culvert Weekly Service","^990000Hard Culvert Weekly Service^000000";
43         set .@menu$,"Why are doing this job?:";
44         for(set .@i,0; .@i<4; set .@i,.@i+1) {
45                 if (checkquest(.@quests[.@i],PLAYTIME) > -1) {
46                         set .@status[.@i],2;
47                         set .@menu$, .@menu$+"^aaaaaa- There is no new task -^000000:";
48                 } else if (.@i%2 && BaseLevel < 140) {
49                         set .@status[.@i],0;
50                         set .@menu$, .@menu$+"^aaaaaaCan't take this job because level is too low^000000:";
51                 } else {
52                         set .@status[.@i],1;
53                         set .@menu$, .@menu$+.@names$[.@i]+":";
54                 }
55         }
56         mes "[Albo]";
57         mes "We crossed the sea!";
58         mes "We are great heroes of Culvert! We do not forgive the seafood that aims at Culvert!";
59         next;
60         set .@i, select(.@menu$)-1;
61         if (.@i == 0) {
62                 mes "[Albo]";
63                 mes "We used to be the henchmen of Mr. Missing! We almost became guards of such a historic site.";
64                 next;
65                 mes "[Albo]";
66                 mes "However, when sea water flooded all precious the resources, my dream... all my dreams melted away...";
67                 next;
68                 mes "[Albo]";
69                 mes "We do not forgive the seafood that invaded our territory. I'll eat them with spicy paste!!!";
70                 next;
71                 mes "^0000ffAlbo's voice shakes with anger. He smacked his lips when he mentioned spicy paste.^000000";
72                 close;
73         }
74         switch(.@status[.@i-1]) {
75         case 0:
76                 mes "[Albo]";
77                 mes "That task is really hard for you, so I can't tell you about it. Why don't you find another one?";
78                 close;
79         case 1:
80                 break;
81         case 2:
82                 mes "[Albo]";
83                 mes "I'm sorry. There is no new task yet! If I find any work, I'll tell you so!";
84                 close;
85         }
86         switch(.@i) {
87         case 1: // General Culvert Daily Service
88                 switch(rand(1,6)) {
89                         case 1: callsub L_GiveQuest,.@i,12255,12271,"Deep Sea Crab";
90                         case 2: callsub L_GiveQuest,.@i,12256,12271,"Deep Sea Marse";
91                         case 3: callsub L_GiveQuest,.@i,12257,12271,"Deep Sea Vadon";
92                         case 4: callsub L_GiveQuest,.@i,12258,12271,"Deep Sea Shellfish";
93                         case 5: callsub L_GiveQuest,.@i,12259,12271,"Deep Sea Kukre";
94                         case 6: callsub L_GiveQuest,.@i,12260,12271,"Deep Sea Cornutus";
95                 }
96         case 2: // Hard Culvert Daily Service
97                 switch(rand(1,6)) {
98                         case 1: callsub L_GiveQuest,.@i,12261,12272,"Deep Sea Marc";
99                         case 2: callsub L_GiveQuest,.@i,12262,12272,"Deep Sea Sword Fish";
100                         case 3: callsub L_GiveQuest,.@i,12263,12272,"Deep Sea Strouf";
101                         case 4: callsub L_GiveQuest,.@i,12264,12272,"Deep Sea Anolian";
102                         case 5: callsub L_GiveQuest,.@i,12265,12272,"Deep Sea Obeanue";
103                         case 6: callsub L_GiveQuest,.@i,12266,12272,"Deep Sea Kapha";
104                 }
105         case 3: // General Culvert Weekly Service
106                 switch(rand(1,2)) {
107                         case 1: callsub L_GiveQuest,.@i,12267,12273,"Weird Coelacanth";
108                         case 2: callsub L_GiveQuest,.@i,12268,12273,"Gloomy Coelacanth";
109                 }
110         case 4: // Hard Culvert Weekly Service
111                 switch(rand(1,2)) {
112                         case 1: callsub L_GiveQuest,.@i,12269,12274,"Violent Coelacanth";
113                         case 2: callsub L_GiveQuest,.@i,12270,12274,"Mutant Coelacanth";
114                 }
115         default:
116                 mes "[Albo]";
117                 mes "Uh!? Where is the task? Let me find that quickly. You must speak with Madeca!";
118                 close;
119         }
120         end;
121
122 // callsub L_GiveQuest,.@i,<quest 1>,<quest 2>,<monster>;
123 L_GiveQuest:
124         setquest getarg(1);
125         setquest getarg(2);
126         mes "[Albo]";
127         mes "Today, the heroes of Culvert!";
128         mes "We raise our voices and set a date for the extermination of ^0000ff"+getarg(3)+"^000000!";
129         next;
130         mes "[Albo]";
131         switch(getarg(0)) {
132         case 1:
133         case 2:
134                 mes "Come on, heroes! Don't be afraid of them! Just go on, since it's a one-day mission!";
135                 break;
136         case 3:
137                 mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Normal Mode!";
138                 break;
139         case 4:
140                 mes "I'll give you one week to finish this job! Terminate all of them in Culvert Dungeon, Hard Mode!";
141                 break;
142         }
143         next;
144         mes "You received a request for the Extermination of ^005500"+getarg(3)+"^000000. If you need more details, please check the quest window.";
145         close;
146 }
147
148 mal_in01,172,26,2       script  Madeca#mal      544,{
149         if (checkweight(1201,1) == 0) {
150                 mes "You have too many kinds of objects. Try to continue after reducing those objects.";
151                 close;
152         }
153         if (MaxWeight - Weight < 1000) {
154                 mes "You have too many heavy objects. Try to continue after reducing your weight.";
155                 close;
156         }
157         if (BaseLevel < 90) {
158                 mes "[Madeca]";
159                 mes "Karrrrrrr!!";
160                 mes "Let's have some bad seafood that can be boiled or grilled!";
161                 next;
162                 mes "[Madeca]";
163                 mes "Who are you? You are such a totterer. Even seaweed could kill you!";
164                 close;
165         }
166         mes "[Madeca]";
167         mes "Oh?";
168         mes "You're the one who took care of my big brother Albo's request. It was a hard job!";
169         next;
170         set .@i, select("What are you doing here?:General Culvert Daily Service Compensation:Hard Culvert Daily Service Compensation:General Culvert Weekly Service Compensation:Hard Culvert Weekly Service Compensation")-1;
171         if (.@i == 0) {
172                 mes "[Madeca]";
173                 mes "I'm here to help my big brother Albo!";
174                 next;
175                 mes "[Madeca]";
176                 mes "We provide precious materials to humans who make sludge out of the bad seafood in the Culverts!";
177                 next;
178                 mes "[Madeca]";
179                 mes "We provide A~B Grade Coins as compensation for daily service, and the precious Sea God's Wrath as compensation for weekly service.";
180                 next;
181                 mes "[Madeca]";
182                 mes "If you take care of big brother Albo's request, I will see you very often. So, let's stay close!";
183                 close;
184         }
185         mes "[Madeca]";
186         mes "I can't give you compensation for an expired request, so let me check if any of yours have expired.";
187         next;
188         specialeffect2 EF_SPHERE;
189         progressbar "0xFFFF00",3;
190         specialeffect2 EF_STEAL;
191         switch(.@i) {
192         case 1: // General Culvert Daily Service
193                 if (checkquest(12271,PLAYTIME) == 2)
194                         callsub L_EraseQuest,12255,12256,12257,12258,12259,12260,12271;
195                 else {
196                         // Reward: 2x B Grade Coin
197                         callsub L_CheckQuest,12255,"Deep Sea Crab",6419,2;
198                         callsub L_CheckQuest,12256,"Deep Sea Marse",6419,2;
199                         callsub L_CheckQuest,12257,"Deep Sea Vadon",6419,2;
200                         callsub L_CheckQuest,12258,"Deep Sea Shellfish",6419,2;
201                         callsub L_CheckQuest,12259,"Deep Sea Kukre",6419,2;
202                         callsub L_CheckQuest,12260,"Deep Sea Cornutus",6419,2;
203                 }
204                 break;
205         case 2: // Hard Culvert Daily Service
206                 if (checkquest(12272,PLAYTIME) == 2)
207                         callsub L_EraseQuest,12261,12262,12263,12264,12265,12266,12272;
208                 else {
209                         // Reward: 1x A Grade Coin
210                         callsub L_CheckQuest,12261,"Deep Sea Marc",6418,1;
211                         callsub L_CheckQuest,12262,"Deep Sea Sword Fish",6418,1;
212                         callsub L_CheckQuest,12263,"Deep Sea Strouf",6418,1;
213                         callsub L_CheckQuest,12264,"Deep Sea Anolian",6418,1;
214                         callsub L_CheckQuest,12265,"Deep Sea Obeaune",6418,1;
215                         callsub L_CheckQuest,12266,"Deep Sea Kapha",6418,1;
216                 }
217                 break;
218         case 3: // General Culvert Weekly Service
219                 if (checkquest(12273,PLAYTIME) == 2)
220                         callsub L_EraseQuest,12267,12268,12273;
221                 else {
222                         // Reward: 1x Sea God's Wrath
223                         callsub L_CheckQuest,12267,"Weird Coelacanth",6423,1;
224                         callsub L_CheckQuest,12268,"Gloomy Coelacanth",6423,1;
225                 }
226                 break;
227         case 4: // Hard Culvert Weekly Service
228                 if (checkquest(12274,PLAYTIME) == 2)
229                         callsub L_EraseQuest,12269,12270,12274;
230                 else {
231                         // Reward: 5x Sea God's Wrath
232                         callsub L_CheckQuest,12269,"Violent Coelacanth",6423,5;
233                         callsub L_CheckQuest,12270,"Mutant Coelacanth",6423,5;
234                 }
235                 break;
236         default:
237                 mes "[Madeca]";
238                 mes "Something is wrong. Please check this again!";
239                 close;
240         }
241         mes "[Madeca]";
242         mes "I don't see any completed mission!";
243         close;
244
245 L_EraseQuest:
246         for(set .@j,0; .@j<getargcount(); set .@j,.@j+1) {
247                 if (checkquest(getarg(.@j)) > -1)
248                         erasequest getarg(.@j);
249         }
250         mes "[Madeca]";
251         mes "Um, I'm sorry. You exceeded the time limit, so I can't give you any payment.";
252         close;
253
254 // callsub L_CheckQuest,<quest ID>,<monster>,<reward item ID>,<reward item amount>;
255 L_CheckQuest:
256         if (checkquest(getarg(0),HUNTING) == 2) {
257                 mes "[Madeca]";
258                 mes "You've punished ^0000ff"+getarg(1)+"^000000!";
259                 mes "Here's your pay!";
260                 erasequest getarg(0);
261                 specialeffect2 EF_STEAL;
262                 getitem getarg(2),getarg(3);
263                 close;
264         }
265         return;
266 }
267
268 // Instance Creation :: pump
269 //============================================================
270 mal_in01,160,34,4       script  Missing, the Cleaner    545,{
271         if (BaseLevel < 90) {
272                 mes "[Missing, the Cleaner]";
273                 mes "Are you talking to me?!";
274                 next;
275                 mes "[Missing, the Cleaner]";
276                 mes "I'm not sure what made you come here but you can't enter!";
277                 mes "Tomas' orders...";
278                 next;
279                 mes "^770099You must be Base level 90 to enter.^000000";
280                 close;
281         }
282         if (in_canal_n == 0) {
283                 mes "[Missing, the Cleaner]";
284                 mes "(trembling)";
285                 next;
286                 mes "^660066This cat looks like it's in bad shape. It is slightly trembling.^000000";
287                 next;
288                 if(select("Pet the cat:Are you ok?") == 1) {
289                         mes "[Missing, the Cleaner]";
290                         mes "Are you talking to me?!";
291                         next;
292                         mes "^660066A trembling cat is looking up at you.^000000";
293                         close;
294                 }
295                 mes "[Missing, the Cleaner]";
296                 mes "Achoo!";
297                 next;
298                 mes "[Missing, the Cleaner]";
299                 mes "We have had many issues during the";
300                 mes "cleaning of the culverts. But a";
301                 mes "cat's gotta do it...";
302                 next;
303                 select("What culvert are you cleaning?");
304                 mes "[Missing, the Cleaner]";
305                 mes "It might look unfamiliar for an";
306                 mes "outsider, but actually this place";
307                 mes "is made to keep souvenirs and";
308                 mes "luxurious things.";
309                 next;
310                 mes "[Missing, the Cleaner]";
311                 mes "After there was a big trembling on";
312                 mes "this island, things started leaking";
313                 mes "around here. So that's why I became";
314                 mes "a cleaner here, though I used";
315                 mes "to be a manager.";
316                 next;
317                 mes "^660066The cat looks like it's been crying...^000000";
318                 next;
319                 mes "[Missing, the Cleaner]";
320                 mes "There is a culvert along this way";
321                 mes "to the basement. There are many bad";
322                 mes "guys who hurt me. I am tired of";
323                 mes "fighting with them so many times a";
324                 mes "day!";
325                 next;
326                 mes "[Missing, the Cleaner]";
327                 mes "Ohh! You touched my fur!";
328                 mes "My fur is falling out... it's all";
329                 mes "those guys' fault~";
330                 next;
331                 mes "^660066You just now notice that the cat's fur is missing in some places.^000000";
332                 next;
333                 select("Why don't you just quit!");
334                 mes "[Missing, the Cleaner]";
335                 mes "I still have to make a living, don't I?";
336                 next;
337                 mes "[Missing, the Cleaner]";
338                 mes "Sometimes I can get a lucky box,";
339                 mes "or even better, I can get cans...";
340                 next;
341                 if(select("Okay, cheers!:I will help if possible...") == 1) {
342                         mes "[Missing, the Cleaner]";
343                         mes "Thank you. I am going back to pour the water!";
344                         close;
345                 }
346                 mes "[Missing, the Cleaner]";
347                 mes "(turns down his voice)";
348                 mes "If you really want to help, come closer!";
349                 next;
350                 select("(get in closer)");
351                 mes "[Missing, the Cleaner]";
352                 mes "Not everyone can be an assistant";
353                 mes "here. But I can't help choosing";
354                 mes "anyone at the moment...";
355                 next;
356                 mes "[Missing, the Cleaner]";
357                 mes "If you want to go down here, let me get this code.";
358                 next;
359                 mes "^660066The cat scribbles a memo for code to you.^000000";
360                 next;
361                 select("Open the memo.");
362                 mes "^660000Aragam insulted me.^000000";
363                 next;
364                 mes "[Missing, the Cleaner]";
365                 mes "You must be here with friends";
366                 mes "because you can't go in alone! And";
367                 mes "the password code will be from the";
368                 mes "party leader!";
369                 next;
370                 mes "[Missing, the Cleaner]";
371                 mes "What is also important is you must";
372                 mes "have a Seagod Protection with you.";
373                 next;
374                 mes "[Missing, the Cleaner]";
375                 mes "Don't forget! I will not open the";
376                 mes "door if you do not have Seagod Protection!";
377                 set in_canal_n,1;
378                 close;
379         }
380         if (countitem(6436) == 0) {
381                 mes "[Missing, the Cleaner]";
382                 mes "You don't look like you have Seagod Protection. I can't open door at the moment!";
383                 close;
384         }
385         set .@party_id,getcharid(1);
386         set .@md_name$,"Culvert";
387         if (!.@party_id) {
388                 mes "^0000ffYou have to organize a party of";
389                 mes "more than 1 member or be a member";
390                 mes "of the party and come back.^000000";
391                 close;
392         }
393         set .@playtime, checkquest(12254,PLAYTIME);
394         if (.@playtime == -1) {
395                 if (getcharid(0) == getpartyleader(.@party_id,2)) {
396                         mes "[Missing, the Cleaner]";
397                         mes "Ummm? What's up? Tell me the password if you're the leader!";
398                         next;
399                         switch(select("No... nothing.:Aragam insulted me.:Enter the Culvert.")) {
400                         case 1:
401                                 mes "[Missing, the Cleaner]";
402                                 mes "What a rookie.";
403                                 close;
404                         case 2:
405                                 if (instance_create(.@md_name$) < 0) {
406                                         mes "Party name: "+getpartyname(.@party_id);
407                                         mes "Party leader: "+strcharinfo(0);
408                                         mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
409                                         close;
410                                 }
411                                 mes "^3333FF"+.@md_name$+"^000000 - Reserving";
412                                 mes "After making the reservation, you";
413                                 mes "have to select Enter the Culvert.";
414                                 close;
415                         case 3:
416                                 callsub L_Enter,0;
417                         }
418                 }
419                 if(select("Enter Culvert:Cancel") == 2)
420                         end;
421                 callsub L_Enter,1;
422         } else if (.@playtime == 0 || .@playtime == 1) {
423                 mes "You can enter the Culvert if the gate is open.";
424                 next;
425                 if(select("Enter Culvert:Cancel") == 2)
426                         close;
427                 callsub L_Enter,0;
428         } else if (.@playtime == 2) {
429                 mes "^0000ffThe gate to the Culvert is open again.^000000";
430                 erasequest 12254;
431                 close;
432         }
433         end;
434 L_Enter:
435         switch(instance_enter("Culvert")) {
436         case IE_OTHER:
437                 mes "An unknown error has occurred.";
438                 close;
439         case IE_NOINSTANCE:
440                 mes "The gate to the Culvert is still closed.";
441                 mes "You must wait until you are able to enter or find a party leader who can create the instance.";
442                 close;
443         case IE_NOMEMBER:
444                 mes "Only party members can participate.";
445                 close;
446         case IE_OK:
447                 mapannounce "mal_in01", strcharinfo(0)+" of the party "+getpartyname(getcharid(1))+" is entering the Culvert.",bc_map,"0x00ff99";
448                 if (checkquest(12254) == -1) setquest 12254;
449                 //warp "1@pump",63,98;
450                 if (getarg(0) == 0) close;
451                 else end;
452         }
453 }
454
455 // Instance: Common Scripts
456 //============================================================
457 1@pump,63,100,4 script  Missing, the Cleaner#0  545,{
458         if (getcharid(0) != getpartyleader(getcharid(1),2)) {
459                 mes "[Missing, the Cleaner]";
460                 mes "I am trying to have a conversation with your leader now. Please don't disturb and wait!";
461                 close;
462         }
463         mes "[Missing, the Cleaner]";
464         mes "This is the underground culvert where you will clean with your friends!";
465         next;
466         mes "[Missing, the Cleaner]";
467         mes "I'll open the door first. By the way, do you know how to fight?";
468         next;
469         switch(select("I'm pretty good at delivering bread.:I know how to fight.:^ffffffGive me the diamond.^000000")) {
470         case 1:
471                 mes "[Missing, the Cleaner]";
472                 mes "Ok then, I'll let you clean the culverts here as usual! I will prepare at the right-hand corner, please follow me!";
473                 next;
474                 if(select("Wait! I changed my mind!:As you wish~") == 1) {
475                         mes "[Missing, the Cleaner]";
476                         mes "Huh? Not ready yet? Talk to me again when you're ready.";
477                         close;
478                 }
479                 set 'party_id,getcharid(1);
480                 mapannounce instance_mapname("1@pump"),"Missing: Move toward the 3 o'clock direction and wait for my next order!",bc_map,"0xff88ff",FW_NORMAL,15;
481                 disablenpc instance_npcname("Missing, the Cleaner#0");
482                 enablenpc instance_npcname("Missing, the Cleaner#n");
483                 close;
484         case 2:
485                 if (BaseLevel < 140) {
486                         mes "[Missing, the Cleaner]";
487                         mes "Hmmm... Missing thinks you're weak! Tell me the truth!!";
488                         close;
489                 }
490                 mes "[Missing, the Cleaner]";
491                 mes "Huh? You have some fighting skills? Well, then, there is one place I wasn't able to clean... why don't you go there?!";
492                 next;
493                 mes "[Missing, the Cleaner]";
494                 mes "I must tell you that it's been such a long~~ time since we've cleaned that place, so anyone under level 140 cannot even enter! Are you sure you still want to go?";
495                 next;
496                 if(select("Wait! I changed my mind!:Sure, I'm prepared already~") == 1) {
497                         mes "[Missing, the Cleaner]";
498                         mes "Hmm? Talk to me again when you're ready.";
499                         close;
500                 }
501                 set 'party_id,getcharid(1);
502                 mapannounce instance_mapname("1@pump"),"Missing: I'll go in first, so follow me! I'll open up a gate at the 3 o'clock direction!",bc_map,"0xff88ff",FW_NORMAL,15;
503                 disablenpc instance_npcname("Missing, the Cleaner#0");
504                 enablenpc instance_npcname("Culvert Entrance#i");
505                 close;
506         case 3:
507                 mes "[Missing, the Cleaner]";
508                 mes "I told you not to play with me~!";
509                 close;
510         }
511         end;
512 }
513
514 1@pump,84,105,0 script  Culvert Entrance#i      45,3,3,{
515         end;
516 OnInstanceInit:
517         disablenpc instance_npcname("Culvert Entrance#i");
518         disablenpc instance_npcname("Culvert Entrance#n");      // disable warp out
519         end;
520 OnTouch:
521         if (BaseLevel >= 140)
522                 warp instance_mapname("2@pump"),38,88;
523         else
524                 warp instance_mapname("1@pump"),74,105;
525         end;
526 }
527
528 function        script  F_mal_missing   {
529         mes "[Missing, the Cleaner]";
530         mes "I will tell you how to clean shortly. Can you see the culverts around you?";
531         next;
532         if(select("What culverts??:Yes, I see them.") == 1) {
533                 mes "[Missing, the Cleaner]";
534                 mes "Huh? Is this your first time seeing culverts? You'll see many buried machines in the ground. You may look around and come back!";
535                 close;
536         }
537         mes "[Missing, the Cleaner]";
538         mes "That's right! Those culverts are very important! We must clean the culverts to prevent seaweed from blocking them. This is what we, cleaners, do!";
539         next;
540         mes "[Missing, the Cleaner]";
541         mes "Watch out! Some monsters will be after you while you're cleaning the culverts! But do not yield to them!";
542         next;
543         mes "[Missing, the Cleaner]";
544         mes "And... NEVER let 6 seaweeds stack! Up to 5 is acceptable! If there are 6, I'll drag you out of here!!";
545         next;
546         mes "[Missing, the Cleaner]";
547         mes "I don't care if you get help from your friends or not. I want you to clean up all culverts! Don't forget! I will watch you and give you instructions. Just do what I said!!";
548         next;
549         if (getcharid(0) != getpartyleader(getcharid(1),2)) {
550                 mes "[Missing, the Cleaner]";
551                 mes "Once your leader finishes preparing, it will begin, so get your hearts ready for it!!";
552                 close;
553         }
554         mes "[Missing, the Cleaner]";
555         mes "So, are you ready to clean now?";
556         next;
557         switch(select("Wait! Not yet!:Let's start!")) {
558         case 1:
559                 mes "[Missing, the Cleaner]";
560                 mes "Huh? Not ready yet? Then talk to me when you're ready.";
561                 close;
562         case 2:
563                 mes "[Missing, the Cleaner]";
564                 mes "OK! Now it begins!";
565                 return;
566         }
567 }
568
569 // Instance: Normal Mode :: in_pump1
570 //============================================================
571 1@pump,84,105,4 script  Missing, the Cleaner#nf 545,{
572         mes "[Missing, the Cleaner]";
573         mes "I have the cleaning job for 40 years and I've never seen such a terrible team!!";
574         next;
575         mes "[Missing, the Cleaner]";
576         mes "I see seaweed everywhere because you're wiggling! All the culverts will be blocked with seaweed!";
577         next;
578         if (getcharid(0) != getpartyleader(getcharid(1),2)) {
579                 mes "[Missing, the Cleaner]";
580                 mes "Once your leader finishes preparing, settlement will be decided so get your hearts ready for it!!";
581                 close;
582         }
583         mes "[Missing, the Cleaner]";
584         mes "If you got some guts to challenge again, I'll give you another chance! What's your choice going to be!?";
585         next;
586         switch(select("Wait! Not yet!:Okay, let's start again!")) {
587         case 1:
588                 mes "[Missing, the Cleaner]";
589                 mes "You're still slow! Talk to me again whenever your're ready.";
590                 close;
591         case 2:
592                 mes "[Missing, the Cleaner]";
593                 mes "Ok! Let's start now!";
594                 set .@i$, charat(strnpcinfo(2),0);
595                 enablenpc instance_npcname("Missing, the Cleaner#"+.@i$);
596                 donpcevent instance_npcname("Missing, the Cleaner#"+.@i$)+"::OnStart";
597                 disablenpc instance_npcname("Culvert Entrance#"+.@i$);
598                 disablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
599                 donpcevent instance_npcname("Monster Hole#"+.@i$)+"::OnClear";
600                 disablenpc instance_npcname(strnpcinfo(0));
601                 close;
602         }
603         close;
604 OnInstanceInit:
605         disablenpc instance_npcname(strnpcinfo(0));
606         end;
607 }
608
609 1@pump,84,105,4 script  Missing, the Cleaner#n  545,{
610         callfunc "F_mal_missing";
611         donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnStart";
612         close;
613 OnInstanceInit:
614         disablenpc instance_npcname("Missing, the Cleaner#n");
615         end;
616 OnStart:
617         killmonster instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
618         disablenpc instance_npcname("Missing, the Cleaner#n");
619         initnpctimer;
620         end;
621 OnAddSeaweed:
622         set .@map$, instance_mapname("1@pump");
623         areamonster .@map$,55,99,61,105,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
624         set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
625         if (.@mob_dead_num >= 6)
626                 donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
627         else
628                 mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
629         end;
630 OnMyMobDead:
631         end;
632 OnFail:
633         stopnpctimer;
634         donpcevent instance_npcname("Monster Hole#n")+"::OnClear";
635         set .@map$, instance_mapname("1@pump");
636         killmonster .@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead";
637         enablenpc instance_npcname("Missing, the Cleaner#nf");
638         mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
639         disablenpc instance_npcname("Missing, the Cleaner#n");
640         end;
641 OnTimer100:
642         mapannounce instance_mapname("1@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
643         end;
644 OnTimer5500:
645         mapannounce instance_mapname("1@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
646         donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
647         end;
648 OnTimer45000:
649 OnTimer95000:
650 OnTimer145000:
651 OnTimer195000:
652 OnTimer245000:
653 OnTimer295000:
654 OnTimer345000:
655 OnTimer395000:
656 OnTimer445000:
657         mapannounce instance_mapname("1@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
658         end;
659 OnTimer50000:
660 OnTimer100000:
661 OnTimer150000:
662         donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
663         end;
664 OnTimer200000:
665 OnTimer250000:
666 OnTimer300000:
667 OnTimer350000:
668 OnTimer400000:
669 OnTimer450000:
670         set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
671         if (.@mob_dead_num >= 6)
672                 donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
673         else
674                 donpcevent instance_npcname("Monster Hole#n")+"::OnSpawn";
675         end;
676 OnTimer515000:
677         set .@map$, instance_mapname("1@pump");
678         set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
679         mapannounce .@map$,"Contaminated Seaweed: "+.@mob_dead_num+" stem. Missing will come and inspect the results of the cleaning soon.",bc_map,"0xff3333",FW_NORMAL,20;
680         end;
681 OnTimer520000:
682         stopnpctimer;
683         set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("Missing, the Cleaner#n")+"::OnMyMobDead");
684         if (.@mob_dead_num >= 6)
685                 donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnFail";
686         else
687                 donpcevent instance_npcname("Boss Creation#n")+"::OnEnable";
688         end;
689 }
690
691 1@pump,1,1,4    script  Monster Hole#n  -1,{
692         end;
693 OnSpawn:
694         set .@i$, charat(strnpcinfo(2),0);
695         if (.@i$ == "n")
696                 set .@n,6;
697         else if (.@i$ == "h")
698                 set .@n,10;
699         donpcevent instance_npcname("#Culvert_"+.@i$+rand(1,.@n))+"::OnEnable";
700         end;
701 OnClear:
702         set .@i$, charat(strnpcinfo(2),0);
703         if (.@i$ == "n")
704                 set .@n,6;
705         else if (.@i$ == "h")
706                 set .@n,10;
707         for(set .@i,1; .@i<=.@n; set .@i,.@i+1)
708                 donpcevent instance_npcname("#Culvert_"+.@i$+.@n)+"::OnClear";
709         end;
710 }
711
712 1@pump,36,111,4 script  #Culvert_n1     844,14,14,{ //temporary workaround for ALL_SAMEMAP
713         progressbar "0xFFFF00",10;
714         stopnpctimer;
715         disablenpc instance_npcname(strnpcinfo(0));
716         end;
717 OnInstanceInit:
718         disablenpc instance_npcname(strnpcinfo(0));
719         end;
720 OnEnable:
721         enablenpc instance_npcname(strnpcinfo(0));
722         set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
723         set .@map$, instance_mapname("1@pump");
724         set .@index, atoi(charat(strnpcinfo(2),9));
725         switch(.@index) {
726                 case 1: setarray .@c[0],32,107,40,115; break;
727                 case 2: setarray .@c[0],64,120,72,128; break;
728                 case 3: setarray .@c[0],76,110,84,118; break;
729                 case 4: setarray .@c[0],36,76,44,84; break;
730                 case 5: setarray .@c[0],71,76,79,84; break;
731                 case 6: setarray .@c[0],54,97,62,105; break;
732         }
733         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Crab",2176,rand(1,3),.@label$;
734         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Marse",2175,rand(1,3),.@label$;
735         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Vadon",2174,rand(1,3),.@label$;
736         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Shellfish",2178,rand(1,3),.@label$;
737         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Kukre",2179,rand(1,3),.@label$;
738         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Cornutus",2177,rand(1,3),.@label$;
739         specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
740         getmapxy(.@map$,.@x,.@y,UNITTYPE_NPC);
741         getpartymember 'party_id,2;
742         copyarray .@partymemberaid[0],$@partymemberaid[0],$@partymembercount;
743         for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
744                 if (attachrid(.@partymemberaid[.@i])) {
745                         if (strcharinfo(3) == .@map$)
746                                 viewpoint 0,.@x,.@y,.@index,0xFFFF00;
747                         detachrid;
748                 }
749         }
750         initnpctimer;
751         end;
752 OnMyMobDead:
753         end;
754 OnClear:
755         stopnpctimer;
756         killmonster instance_mapname("1@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
757         end;
758 OnTimer49500:   //OnTimer50000 clashes with the timer in "Missing, the Cleaner#h".
759         donpcevent instance_npcname("Missing, the Cleaner#n")+"::OnAddSeaweed";
760         donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
761         disablenpc instance_npcname(strnpcinfo(0));
762         end;
763 OnTouch:
764         specialeffect EF_MAPPILLAR2;
765         end;
766 }
767 1@pump,68,124,4 duplicate(#Culvert_n1)  #Culvert_n2     844,14,14
768 1@pump,80,114,4 duplicate(#Culvert_n1)  #Culvert_n3     844,14,14
769 1@pump,40,80,4  duplicate(#Culvert_n1)  #Culvert_n4     844,14,14
770 1@pump,75,80,4  duplicate(#Culvert_n1)  #Culvert_n5     844,14,14
771 1@pump,58,101,4 duplicate(#Culvert_n1)  #Culvert_n6     844,14,14
772
773 1@pump,1,1,4    script  Boss Creation#n -1,{
774         end;
775 OnInstanceInit:
776         disablenpc instance_npcname(strnpcinfo(0));
777         end;
778 OnEnable:
779         enablenpc instance_npcname(strnpcinfo(0));
780         initnpctimer;
781         end;
782 OnTimer100:
783         set .@i$, charat(strnpcinfo(2),0);
784         if (.@i$ == "n")
785                 mapannounce instance_mapname("1@pump"),"Hmm! That wasn't so bad!",bc_map,"0xff88ff",FW_NORMAL,15;
786         else if (.@i$ == "h")
787                 mapannounce instance_mapname("2@pump"),"Hmm! You guys are pretty good!!",bc_map,"0xff88ff",FW_NORMAL,15;
788         end;
789 OnTimer5000:
790         mapannounce strnpcinfo(4),"Let's pack up and go... WHAT!!?",bc_map,"0xff88ff",FW_NORMAL,15;
791         end;
792 OnTimer10000:
793         mapannounce strnpcinfo(4),"I sense something strange!! Don't loosen up-- prepare for a fight!!",bc_map,"0xff88ff",FW_NORMAL,15;
794         end;
795 OnTimer20000:
796         stopnpctimer;
797         set .@i$, charat(strnpcinfo(2),0);
798         set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
799         if (rand(1,100) > 50) {
800                 if (.@i$ == "n")
801                         monster instance_mapname("1@pump"),0,0,"Weird Coelacanth",2188,1,.@label$;
802                 else if (.@i$ == "h")
803                         monster instance_mapname("2@pump"),0,0,"Mutant Coelacanth",2189,1,.@label$;
804                 mapannounce strnpcinfo(4),"Something big inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
805         } else {
806                 if (.@i$ == "n")
807                         monster instance_mapname("1@pump"),0,0,"Gloomy Coelacanth",2187,1,.@label$;
808                 else if (.@i$ == "h")
809                         monster instance_mapname("2@pump"),0,0,"Violent Coelacanth",2190,1,.@label$;
810                 mapannounce strnpcinfo(4),"Something savage inside the abyss appears with a huge noise.",bc_map,"0x00ffcc",FW_NORMAL,15;
811         }
812         end;
813 OnMyMobDead:
814         if (mobcount(strnpcinfo(4),instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
815                 mapannounce strnpcinfo(4),"You've destroyed all monsters in the culverts. There are trophies lying on the ground, please look for them.",bc_map,"0xffff00",FW_NORMAL,15;
816                 set .@i$, charat(strnpcinfo(2),0);
817                 set .@map$, strnpcinfo(4);
818                 enablenpc instance_npcname("Culvert Entrance#"+.@i$);
819                 enablenpc instance_npcname("Missing, the Cleaner#"+.@i$+"o");
820                 if (.@i$ == "n") {
821                         for(set .@i,0; .@i<10; set .@i,.@i+1) {
822                                 set .@j, rand(1,6401);
823                                      if (.@j < 5001) set .@item,12636; //Malang_Sp_Can
824                                 else if (.@j < 5501) set .@item,12615; //Low_Coin_Pocket
825                                 else if (.@j < 6001) set .@item,12621; //Egrade_Pocket
826                                 else if (.@j < 6201) set .@item,12620; //Dgrade_Pocket
827                                 else if (.@j < 6401) set .@item,12623; //High_Weapon_Box
828                                 else continue;
829                                 makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
830                         }
831                 } else if (.@i$ == "h") {
832                         for(set .@i,0; .@i<10; set .@i,.@i+1) {
833                                 set .@j, rand(1,5001);
834                                      if (.@j < 2001) set .@item,12615; //Low_Coin_Pocket
835                                 else if (.@j < 3001) set .@item,12621; //Egrade_Pocket
836                                 else if (.@j < 4001) set .@item,12620; //Dgrade_Pocket
837                                 else if (.@j < 4501) set .@item,12619; //Cgrade_Pocket
838                                 else if (.@j < 5001) set .@item,12623; //High_Weapon_Box
839                                 else continue;
840                                 makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
841                         }
842                 }
843         } else
844                 mapannounce strnpcinfo(4),"There are still monsters alive.",bc_map,"0x00ff99",FW_NORMAL,20;
845         end;
846 }
847
848 1@pump,84,105,4 script  Missing, the Cleaner#no 545,{
849         set .@i$, charat(strnpcinfo(2),0);
850         if (.@i$ == "n") {
851                 mes "[Missing, the Cleaner]";
852                 mes "I was very surprised!!";
853                 next;
854                 mes "[Missing, the Cleaner]";
855                 mes "That funny-looking fish seems to be one of Coelacanths living around here. This is my first time seeing one coming here alone!";
856                 next;
857                 mes "[Missing, the Cleaner]";
858                 mes "I'll clean up the remains. Go pack and leave! Enterance is located on the other side, look for it!";
859                 next;
860         } else if (.@i$ == "h") {
861                 mes "[Missing, the Cleaner]";
862                 mes "You've destroyed an immense monster!";
863                 next;
864                 mes "[Missing, the Cleaner]";
865                 mes "The one you destroyed was among the variety of Coelacanths. Others have tried to destroy them but failed.";
866                 next;
867                 mes "[Missing, the Cleaner]";
868                 mes "I'll clean up the remains. You go ahead to get trophies and leave!";
869                 next;
870         }
871         mes "[Missing, the Cleaner]";
872         mes "One more thing! DO NOT TALK to ANYONE about what you've seen here today!!";
873         next;
874         mes "[Missing, the Cleaner]";
875         mes "If Tomas closes this down, we will lose our jobs!";
876         close;
877 OnInstanceInit:
878         disablenpc instance_npcname(strnpcinfo(0));
879         end;
880 }
881
882 1@pump,32,100,0 warp2   Culvert Entrance#n      3,3,mal_in01,161,32
883
884 //MD_Putmob "1@pump" 0 0 0 0 20 HYDRA 0 0 2
885 1@pump,1,1,4    script  Hydra#n -1,{
886 OnInstanceInit:
887         monster strnpcinfo(4),0,0,"Hydra",1068,20;
888         end;
889 }
890
891 // Instance: Hard Mode :: in_pump2
892 //============================================================
893 2@pump,39,88,4  duplicate(Missing, the Cleaner#nf)      Missing, the Cleaner#hf 545
894
895 2@pump,39,88,4  script  Missing, the Cleaner#h  545,{
896         callfunc "F_mal_missing";
897         donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnStart";
898         close;
899 OnStart:
900         killmonster instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
901         disablenpc instance_npcname("Missing, the Cleaner#h");
902         initnpctimer;
903         end;
904 OnAddSeaweed:
905         set .@map$, instance_mapname("2@pump");
906         areamonster .@map$,75,78,85,88,"Contaminated Seaweed",2191,1,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
907         set .@mob_dead_num, mobcount(.@map$,instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
908         if (.@mob_dead_num >= 6)
909                 donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
910         else
911                 mapannounce .@map$,"Proliferous Contaminated Seaweed: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
912         end;
913 OnMyMobDead:
914         end;
915 OnFail:
916         stopnpctimer;
917         donpcevent instance_npcname("Monster Hole#h")+"::OnClear";
918         set .@map$, instance_mapname("2@pump");
919         killmonster .@map$, instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead";
920         enablenpc instance_npcname("Missing, the Cleaner#hf");
921         mapannounce .@map$,"What is this!! Seaweed is all over the culverts! You're done with cleaning! Get out!!",bc_map,"0xff88ff",FW_NORMAL,15;
922         disablenpc instance_npcname("Missing, the Cleaner#h");
923         end;
924 OnTimer100:
925         mapannounce instance_mapname("2@pump"),"First culvert will be opened in 5 sec. Cleaner can find the opened drain and click to start cleaning.",bc_map,"0x00ffcc",FW_NORMAL,15;
926         end;
927 OnTimer5500:
928         mapannounce instance_mapname("2@pump"),"The one who's in charge of cleaning the culvert cannot move or be attacked until the casting is over.",bc_map,"0x00ffcc",FW_NORMAL,15;
929         donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
930         end;
931 OnTimer35000:
932 OnTimer75000:
933 OnTimer115000:
934 OnTimer155000:
935 OnTimer195000:
936 OnTimer235000:
937 OnTimer275000:
938 OnTimer315000:
939 OnTimer355000:
940         mapannounce instance_mapname("2@pump"),"Next culvert will be opened in 5 sec. Please hurry up and find the position of the next culvert.",bc_map,"0x00ffcc",FW_NORMAL,15;
941         end;
942 OnTimer40000:
943 OnTimer80000:
944 OnTimer120000:
945         donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
946         end;
947 OnTimer160000:
948 OnTimer200000:
949 OnTimer240000:
950 OnTimer280000:
951 OnTimer320000:
952 OnTimer360000:
953         set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
954         if (.@mob_dead_num >= 6)
955                 donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
956         else
957                 donpcevent instance_npcname("Monster Hole#h")+"::OnSpawn";
958         end;
959 OnTimer420000:
960         mapannounce instance_mapname("2@pump"),"It seems Missing will come and inspect the results of the cleaning soon. Shall we clean up the mess around here?",bc_map,"0xff3333",FW_NORMAL,20;
961         end;
962 OnTimer425000:
963         stopnpctimer;
964         set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("Missing, the Cleaner#h")+"::OnMyMobDead");
965         if (.@mob_dead_num >= 6)
966                 donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnFail";
967         else
968                 donpcevent instance_npcname("Boss Creation#h")+"::OnEnable";
969         end;
970 }
971
972 2@pump,53,114,4 script  #Culvert_h1     844,14,14,{ //temporary workaround for ALL_SAMEMAP
973         progressbar "0xFFFF00",15;
974         stopnpctimer;
975         disablenpc instance_npcname(strnpcinfo(0));
976         end;
977 OnInstanceInit:
978         disablenpc instance_npcname(strnpcinfo(0));
979         end;
980 OnEnable:
981         enablenpc instance_npcname(strnpcinfo(0));
982         set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
983         set .@map$, instance_mapname("2@pump");
984         set .@index, atoi(substr(strnpcinfo(2),9,getstrlen(strnpcinfo(2))-1));
985         switch(.@index) {
986                 case 1: setarray .@c[0],49,110,57,118; break;
987                 case 2: setarray .@c[0],75,105,83,113; break;
988                 case 3: setarray .@c[0],110,110,118,118; break;
989                 case 4: setarray .@c[0],94,94,102,102; break;
990                 case 5: setarray .@c[0],58,92,66,100; break;
991                 case 6: setarray .@c[0],53,66,61,74; break;
992                 case 7: setarray .@c[0],43,45,51,53; break;
993                 case 8: setarray .@c[0],77,59,85,67; break;
994                 case 9: setarray .@c[0],96,70,104,78; break;
995                 case 10: setarray .@c[0],111,46,119,54; break;
996         }
997         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Marc",2182,rand(2,3),.@label$;
998         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Sword Fish",2181,rand(2,3),.@label$;
999         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Ancient Strouf",2180,rand(2,3),.@label$;
1000         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Mutant Anolian",2183,rand(2,3),.@label$;
1001         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Abysmal Obeaune",2184,rand(2,3),.@label$;
1002         areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"Metamorphous Kapha",2185,rand(2,3),.@label$;
1003         specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
1004         initnpctimer;
1005         end;
1006 OnMyMobDead:
1007         end;
1008 OnClear:
1009         stopnpctimer;
1010         killmonster instance_mapname("2@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
1011         end;
1012 OnTimer39500:   //OnTimer40000 clashes with the timer in "Missing, the Cleaner#h".
1013         donpcevent instance_npcname("Missing, the Cleaner#h")+"::OnAddSeaweed";
1014         donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
1015         disablenpc instance_npcname(strnpcinfo(0));
1016         end;
1017 OnTouch:
1018         specialeffect EF_MAPPILLAR2;
1019         end;
1020 }
1021 2@pump,79,109,4 duplicate(#Culvert_h1)  #Culvert_h2     844,14,14
1022 2@pump,114,114,4        duplicate(#Culvert_h1)  #Culvert_h3     844,14,14
1023 2@pump,98,98,4  duplicate(#Culvert_h1)  #Culvert_h4     844,14,14
1024 2@pump,62,96,4  duplicate(#Culvert_h1)  #Culvert_h5     844,14,14
1025 2@pump,57,70,4  duplicate(#Culvert_h1)  #Culvert_h6     844,14,14
1026 2@pump,47,49,4  duplicate(#Culvert_h1)  #Culvert_h7     844,14,14
1027 2@pump,81,63,4  duplicate(#Culvert_h1)  #Culvert_h8     844,14,14
1028 2@pump,100,74,4 duplicate(#Culvert_h1)  #Culvert_h9     844,14,14
1029 2@pump,115,50,4 duplicate(#Culvert_h1)  #Culvert_h10    844,14,14
1030
1031 2@pump,1,1,4    duplicate(Monster Hole#n)       Monster Hole#h  -1
1032 2@pump,1,1,4    duplicate(Boss Creation#n)      Boss Creation#h -1
1033 2@pump,39,88,4  duplicate(Missing, the Cleaner#no)      Missing, the Cleaner#ho 545
1034 2@pump,38,100,0 duplicate(Culvert Entrance#n)   Culvert Entrance#h      45,3,3
1035
1036 //MD_Putmob "2@pump" 0 0 0 0 20 HYDRA 0 0 2
1037 2@pump,1,1,4    duplicate(Hydra#n)      Hydra#h -1