summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/014-5/sagratha.txt28
-rw-r--r--npc/015-8-1/campaign.txt18
-rw-r--r--npc/015-8-1/puzzle.txt22
-rw-r--r--npc/015-8/config.txt28
-rw-r--r--npc/015-8/sealedshrine.txt2
5 files changed, 54 insertions, 44 deletions
diff --git a/npc/014-5/sagratha.txt b/npc/014-5/sagratha.txt
index d06a3e9b0..847872b11 100644
--- a/npc/014-5/sagratha.txt
+++ b/npc/014-5/sagratha.txt
@@ -16,6 +16,34 @@
// During stage 3 and 4: Control puzzles
// During stage 5 boss fight
+// Check instances and rebuild if needed
+// Returns map name
+// SaggyInstCheck( {house=true} )
+function script SaggyInstCheck {
+ .@house=getarg(0, true);
+
+ .@q2=getq2(HurnscaldQuest_Sagratha);
+ // Map name limit: 4 chars (sgt1)
+ .@mapn$="sgt1@"+getcharid(0);
+ .@map2$="sgt2@"+getcharid(0);
+ if (!(isinstance(.@q2) && .@q2 != 0)) {
+ .@inst = instance_create("Sagratha House "+getcharid(0), getcharid(3), IOT_CHAR);
+ instance_attachmap("014-5-1", .@inst, false, .@mapn$);
+ //instance_attachmap("015-8", .@inst, false, .@mapn$);
+ instance_attachmap("015-8-1", .@inst, false, .@map2$);
+ // 40 minutes (2400s) inside, or 5 minutes (300s) outside
+ instance_set_timeout(2400, 300, .@inst);
+ instance_init(.@inst);
+ setq2 HurnscaldQuest_Sagratha, .@inst;
+ }
+
+ if (.@house) {
+ return .@mapn$;
+ } else {
+ return .@map2$;
+ }
+}
+
014-5,122,137,0 script Sagratha Door NPC_HIDDEN,0,0,{
end;
diff --git a/npc/015-8-1/campaign.txt b/npc/015-8-1/campaign.txt
index 4f3b94473..24a6ffaa8 100644
--- a/npc/015-8-1/campaign.txt
+++ b/npc/015-8-1/campaign.txt
@@ -13,22 +13,32 @@
// There is no instance init
OnBegin:
+ .@m$=getmap();
+
setq3 HurnscaldQuest_Sagratha, 1;
// We're in an instance, ofc. Here we still have player attached.
- npctalk3 l("Open your eyes");
- initnpctimer; // Maybe addtimer() would be better?
+ npctalk3 l("Open your eyes!");
+
+ monster .@m$, 49, 45, "Real Monster", RedSlime, 1;
+ // max AI id 4. You are in 49,39
+ monster .@m$, 49, 41, "AI Tx", RedSlime, 1, .name$+"::OnError", Size_Medium, 2;
+ monster .@m$, 51, 41, "AI Xt", RedSlime, 1, .name$+"::OnError", Size_Medium, 2;
+
+ addtimer(5000, "#SaggyDungeonCore::OnError");
end;
// Assassin, HoodedNinja, HoodedAssassin (boss)
+// Mouboo, ForestMushroom, Fluffy, Sagratha (boss)
-OnTimer1000:
+OnError:
debugmes "Error";
+ npctalk "Error";
end;
}
// Dummy NPC to fire #SaggyDungeonCore when you get close to battle scene
-015-8-1,49,38,0 script #SaggyDungeonFire NPC_HIDDEN,0,0,{
+015-8-1,49,39,0 script #SaggyDungeonFire NPC_HIDDEN,1,0,{
end;
OnTouch:
if (instance_id() < 0)
diff --git a/npc/015-8-1/puzzle.txt b/npc/015-8-1/puzzle.txt
index 105187a8a..4824afee5 100644
--- a/npc/015-8-1/puzzle.txt
+++ b/npc/015-8-1/puzzle.txt
@@ -58,16 +58,16 @@ OnInit:
}
// Create more traps. (They can be on walls so amount is random >.<)
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap02 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap03 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap04 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap05 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap06 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap07 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap08 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap09 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap10 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap11 NPC_TRAP
-015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap12 NPC_TRAP
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap02 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap03 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap04 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap05 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap06 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap07 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap08 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap09 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap10 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap11 NPC_TRAP,0,0
+015-8-1,0,0,0 duplicate(#SaggyBossTrap01) #SaggyBossTrap12 NPC_TRAP,0,0
// twelve traps should be enough
diff --git a/npc/015-8/config.txt b/npc/015-8/config.txt
index 6076fc9da..986e4bc65 100644
--- a/npc/015-8/config.txt
+++ b/npc/015-8/config.txt
@@ -7,34 +7,6 @@
015-8 mapflag zone MMO
015-8-1 mapflag zone MMO
-// Check instances and rebuild if needed
-// Returns map name
-// SaggyInstCheck( {house=true} )
-function script SaggyInstCheck {
- .@house=getarg(0, true);
-
- .@q2=getq2(HurnscaldQuest_Sagratha);
- // Map name limit: 4 chars (sgt1)
- .@mapn$="sgt1@"+getcharid(0);
- .@map2$="sgt2@"+getcharid(0);
- if (!(isinstance(.@q2) && .@q2 != 0)) {
- .@inst = instance_create("Sagratha House "+getcharid(0), getcharid(3), IOT_CHAR);
- instance_attachmap("014-5-1", .@inst, false, .@mapn$);
- //instance_attachmap("015-8", .@inst, false, .@mapn$);
- instance_attachmap("015-8-1", .@inst, false, .@map2$);
- // 40 minutes (2400s) inside, or 5 minutes (300s) outside
- instance_set_timeout(2400, 300, .@inst);
- instance_init(.@inst);
- setq2 HurnscaldQuest_Sagratha, .@inst;
- }
-
- if (.@house) {
- return .@mapn$;
- } else {
- return .@map2$
- }
-}
-
015-8,99,179,0 script #Exit0158 NPC_HIDDEN,0,0,{
end;
diff --git a/npc/015-8/sealedshrine.txt b/npc/015-8/sealedshrine.txt
index 95efa69e2..7d898dcf6 100644
--- a/npc/015-8/sealedshrine.txt
+++ b/npc/015-8/sealedshrine.txt
@@ -525,6 +525,7 @@ OnTouch:
// SaggyShrineStatue( .name$ )
function script SaggyShrineStatue {
.@n$=getarg(0);
+ .@q=getq(HurnscaldQuest_Sagratha);
// Initial check
if (!MAGIC_LVL || .@q < 4) {
@@ -539,7 +540,6 @@ function script SaggyShrineStatue {
}
mesn l("Guardian Statue");
- .@q=getq(HurnscaldQuest_Sagratha);
if (.@q != 4) {
mesq l("...");
next;