diff options
Diffstat (limited to 'npc/018-6-1')
-rw-r--r-- | npc/018-6-1/_import.txt | 1 | ||||
-rw-r--r-- | npc/018-6-1/main.txt | 115 |
2 files changed, 116 insertions, 0 deletions
diff --git a/npc/018-6-1/_import.txt b/npc/018-6-1/_import.txt index de446a263..2770c1ae4 100644 --- a/npc/018-6-1/_import.txt +++ b/npc/018-6-1/_import.txt @@ -2,3 +2,4 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/018-6-1/_mobs.txt", "npc/018-6-1/_warps.txt", +"npc/018-6-1/main.txt", 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 + + + |