diff options
-rw-r--r-- | npc/014-5/sagratha.txt | 28 | ||||
-rw-r--r-- | npc/015-8-1/campaign.txt | 18 | ||||
-rw-r--r-- | npc/015-8-1/puzzle.txt | 22 | ||||
-rw-r--r-- | npc/015-8/config.txt | 28 | ||||
-rw-r--r-- | npc/015-8/sealedshrine.txt | 2 |
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; |