summaryrefslogtreecommitdiff
path: root/npc/001-10-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-10-1')
-rw-r--r--npc/001-10-1/_import.txt2
-rw-r--r--npc/001-10-1/mapflags.txt2
-rw-r--r--npc/001-10-1/scripts.txt77
3 files changed, 81 insertions, 0 deletions
diff --git a/npc/001-10-1/_import.txt b/npc/001-10-1/_import.txt
index f1ee86539..6f5c2b5df 100644
--- a/npc/001-10-1/_import.txt
+++ b/npc/001-10-1/_import.txt
@@ -1,2 +1,4 @@
// Map 001-10-1: Dust Boss Cave
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/001-10-1/mapflags.txt",
+"npc/001-10-1/scripts.txt",
diff --git a/npc/001-10-1/mapflags.txt b/npc/001-10-1/mapflags.txt
new file mode 100644
index 000000000..48d99d981
--- /dev/null
+++ b/npc/001-10-1/mapflags.txt
@@ -0,0 +1,2 @@
+001-10-1 mapflag zone MMO
+001-10-1 mapflag pvp
diff --git a/npc/001-10-1/scripts.txt b/npc/001-10-1/scripts.txt
new file mode 100644
index 000000000..0038e9281
--- /dev/null
+++ b/npc/001-10-1/scripts.txt
@@ -0,0 +1,77 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Dusty in a Bottle (aka. Dustynator, Dustman, mr. willbelz)
+// Description:
+// Scripts for 001-10-1: Boss Fight!
+
+001-10-1,0,0,0 script #COD_BossManager NPC_HIDDEN,{
+ end;
+
+// Spawn the Dust Boss
+OnEventStart:
+ areamonster("001-10-1", 34, 29, 59, 52, strmobinfo(1, DustBoss), DustBoss, 1, "#COD_BossManager::OnVictory");
+ initnpctimer;
+ end;
+
+// Dust boss was killed, add timers
+OnVictory:
+ if (getcharid(1) > 0)
+ .pwin=getcharid(1);
+ else
+ .win$=strcharinfo(0);
+
+ maptimer("001-10-1", 100, "#COD_BossManager::OnReward1");
+ maptimer("001-10-1", 100, "#COD_BossManager::OnReward2");
+ donpcevent("Colonel DUSTMAN::OnCoDEnd");
+ end;
+
+// Handle rewards: 10 dust for winner party on boss room, 1 dust for everyone else
+// on boss room, 1 dust for winner party outside boss room
+OnReward1:
+ if ((.pwin > 0 && getcharid(1) == .pwin) || strcharinfo(0) == .awin$)
+ getitem BottledDust, 10;
+ else
+ getitem BottledDust, 1;
+OnReward2:
+ if (.pwin && getcharid(1) == .pwin)
+ getitem BottledDust, 1;
+ warp "018-2-1", 24, 29;
+ end;
+
+// You ran out of time
+OnTimeDefeat:
+ @COD_CHECKPOINT=0;
+ if (getmap() ~= "001-10") {
+ warp "018-2-1", 24, 29;
+ dispbottom l("COD: Ran out of time!");
+ }
+ end;
+
+// Must reset for next challenge
+OnCleanUp:
+ .pwin=0; // party winner
+ .win$=""; // fallback, if char not in party
+ killmonsterall("001-10-1");
+ initnpctimer;
+ stopnpctimer;
+ end;
+
+// Every 20 seconds mobs are created if needed
+OnTimer20000:
+ .@mi=mobcount("001-10-1", "all");
+ .@pl=getmapusers("001-10-1");
+ .@monsterId=any(DustRifle, DustGatling, DustRevolver);
+ if (.@pl > (.@mi-2))
+ areamonster("001-10-1", 34, 29, 59, 52, strmobinfo(1, .@monsterId), .@monsterId, (.@pl-.@mi+2));
+ initnpctimer;
+ end;
+
+// Setup
+OnInit:
+ .pwin=0; // party winner
+ .win$=""; // fallback, if char not in party
+ end;
+}
+
+