summaryrefslogtreecommitdiff
path: root/npc/018-6-1/main.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/018-6-1/main.txt')
-rw-r--r--npc/018-6-1/main.txt115
1 files changed, 115 insertions, 0 deletions
diff --git a/npc/018-6-1/main.txt b/npc/018-6-1/main.txt
new file mode 100644
index 000000000..5a1331aaf
--- /dev/null
+++ b/npc/018-6-1/main.txt
@@ -0,0 +1,115 @@
+// TMW2 Scripts
+// Author:
+// Jesusalva
+// Description:
+// Controls Elenium Mines, specially the instances
+
+// Main Controller for Instanced maps
+018-6-1,0,0,0 script #01861_InstCtrl NPC_HIDDEN,{
+ end;
+
+// Map, x, y, width, height, mob, amount
+function AreaMonsterB {
+ .@m$=getarg(0);
+ .@x1=getarg(1);
+ .@x2=.@x1+getarg(3);
+ .@y1=getarg(2);
+ .@y2=.@y1+getarg(4);
+ .@mi=getarg(5);
+ .@am=getarg(6);
+ areamonster(.@m$, .@x1, .@y1, .@x2, .@y2, strmobinfo(1, .@mi), .@mi, .@am, instance_npcname(.name$)+"::OnKill"+.@mi);
+ return;
+}
+
+// (var, value)
+function SetIfVoid {
+ if (!getarg(0))
+ return getarg(1);
+ return 0;
+}
+
+// Bifs won't respawn
+OnKill1226:
+OnKill1227:
+OnKill1228:
+ end;
+
+// Others: Wait 30 seconds and respawn
+OnKill1178:
+ .@mi=SetIfVoid(.@mi, 1178);
+OnKill1051:
+ .@mi=SetIfVoid(.@mi, 1051);
+OnKill1074:
+ .@mi=SetIfVoid(.@mi, 1074);
+OnKill1123:
+ .@mi=SetIfVoid(.@mi, 1123);
+OnKill1176:
+ .@mi=SetIfVoid(.@mi, 1176);
+OnKill1026:
+ .@mi=SetIfVoid(.@mi, 1026);
+
+ // Common utils
+ getmapxy(.@m$, .@x, .@y, 0);
+ sleep(30000);
+ AreaMonsterB(.@m$, .@x-2, .@y-2, 4, 4, .@mi, 1);
+ end;
+
+OnInstanceInit:
+ // Generate map ID
+ getmapxy(.@m$, .@x, .@y, UNITTYPE_NPC);
+
+ // Bif monsters
+ AreaMonsterB(.@m$, 40, 49, 7, 8, BigEleniumBif, 5);
+ AreaMonsterB(.@m$, 95, 51, 7, 8, BigEleniumBif, 5);
+ AreaMonsterB(.@m$, 145, 83, 6, 5, EleniumBif, 5);
+ AreaMonsterB(.@m$, 62, 86, 6, 5, EleniumBif, 5);
+ AreaMonsterB(.@m$, 65, 130, 6, 5, EleniumBif, 5);
+ AreaMonsterB(.@m$, 125, 158, 6, 5, SmallEleniumBif, 4);
+ AreaMonsterB(.@m$, 129, 183, 6, 5, SmallEleniumBif, 4);
+ AreaMonsterB(.@m$, 34, 181, 5, 5, SmallEleniumBif, 4);
+
+ // Common Monsters
+ AreaMonsterB(.@m$, 80, 172, 54, 25, BlackSlime, 16);
+ AreaMonsterB(.@m$, 89, 167, 54, 25, DarkLizard, 8);
+ AreaMonsterB(.@m$, 96, 103, 56, 29, BlackScorpion, 18);
+ AreaMonsterB(.@m$, 101, 105, 54, 25, MountainSnake, 10);
+ AreaMonsterB(.@m$, 70, 45, 44, 25, WickedMushroom, 14);
+ AreaMonsterB(.@m$, 68, 45, 31, 21, Archant, 7);
+ end;
+
+}
+/////////////////////////////
+018-6-1,83,26,0 script #ToForgottenChamber NPC_SUMMONING_CIRC,0,0,{
+ dispbottom l("It looks dangerous.");
+ end;
+
+OnTouch:
+ .@q=getq(LoFQuest_Barbara);
+ .@q2=getq2(LoFQuest_Barbara);
+ .@q3=getq3(LoFQuest_Barbara);
+ if (.@q >= 1) {
+ warp BarbaraInstCheck(0), 90, 91;
+ // Complete the first arc if possible
+ if (.@q == 1) {
+ setq1 LoFQuest_Barbara, 2;
+ setq3 LoFQuest_Barbara, 0;
+ }
+ // Update M0 NPCs based on quest state
+ if (.@q3 == 5)
+ enablenpc instance_npcname("#ToForgottenShrine", .@q2);
+
+ } else {
+ Exception("ERROR, YOU SHOULD NOT BEEN SEEING THIS. 018-6-1.TFC");
+ }
+ end;
+
+OnInit:
+ disablenpc .name$;
+ end;
+
+}
+
+///////////////////////////// Minievents
+
+
+