summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/005-6/zitoni.txt4
-rw-r--r--npc/007-1/torches.txt147
-rw-r--r--npc/007-1/zarkor.txt55
3 files changed, 193 insertions, 13 deletions
diff --git a/npc/005-6/zitoni.txt b/npc/005-6/zitoni.txt
index 1381da49b..060df0577 100644
--- a/npc/005-6/zitoni.txt
+++ b/npc/005-6/zitoni.txt
@@ -28,8 +28,8 @@ L_Menu:
l("Can you reset my stats please?"),
l("Do you make any other kind of potions?"),
rif(.@q1 == 1 || .@q1 == 2, l("Can you help me with Everburn Powder? I need 5.")),
- rif(.@q1 == 3 && countitem(DarkDesertMushroom) >= 1),l("Zarkor sent you this gift. He needs Everburn Powder.")),
- rif(.@q1 >= 4),l("Create Everburn Powder.")),
+ rif(.@q1 == 3 && countitem(DarkDesertMushroom) >= 1,l("Zarkor sent you this gift. He needs Everburn Powder.")),
+ rif(.@q1 >= 4,l("Create Everburn Powder.")),
lg("You are weird, I have to go sorry.");
mes "";
diff --git a/npc/007-1/torches.txt b/npc/007-1/torches.txt
new file mode 100644
index 000000000..57a93a241
--- /dev/null
+++ b/npc/007-1/torches.txt
@@ -0,0 +1,147 @@
+// TMW-2 script.
+// Author:
+// Crazyfefe
+// Jesusalva
+// Description:
+// Torches
+// Variables:
+// TulimsharQuest_DarkInvocator
+// Values:
+// 0 Default.
+// 1 Quest Found.
+// 2 Quest Accepted.
+// 3 Bomb Defused.
+// 4 Quest Completed.
+
+
+function script CheckTorch {
+ @torch_count = 0;
+ @count_tmp = 0;
+ if (debug)
+ npctalk3 l("Hello, I am T-@@, of the @@ order.", @torch, $@TorchBits[@torch]);
+ if (getq2(TulimsharQuest_DarkInvocator) & $@TorchBits[@torch])
+ goto L_Empty;
+ if (countitem(EverburnPowder) <= 0) {
+ dispbottom(l("I do not have Everburn Powder to lit the torch."));
+ end;
+ }
+ setq2 TulimsharQuest_DarkInvocator, getq2(TulimsharQuest_DarkInvocator) | $@TorchBits[@torch];
+
+ goto L_Loop;
+
+L_TorchTally:
+ specialeffect(53);
+ specialeffect(54);
+ getmapxy(.@m, .@x, .@y, UNITTYPE_PC);
+
+ switch (@torch_count) {
+ case 1:
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Maggot", CaveMaggot, 3, "Zarkor::OnMonster";
+ break;
+ case 2:
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Maggot", CaveMaggot, 3, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Goblin", MagicGoblin, 1, "Zarkor::OnMonster";
+ break;
+ case 3:
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Maggot", CaveMaggot, 4, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Goblin", MagicGoblin, 3, "Zarkor::OnMonster";
+ break;
+ case 4:
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Black Scorpion", BlackScorpion, 1, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Maggot", CaveMaggot, 1, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Goblin", MagicGoblin, 4, "Zarkor::OnMonster";
+ break;
+ case 5:
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Black Scorpion", BlackScorpion, 2, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Maggot", CaveMaggot, 2, "Zarkor::OnMonster";
+ areamonster .@m, .@x-2, .@y-2, .@x+2, .@y+2, "Magic Goblin", MagicGoblin, 5, "Zarkor::OnMonster";
+ break;
+ }
+
+ delitem EverburnPowder, 1;
+ if (@torch_count == 5) {
+ message strcharinfo(0), l("All torches are lit!");
+ //killmonsterall("007-1");
+ setq1 TulimsharQuest_DarkInvocator, 6;
+ }
+
+ return;
+
+L_Loop:
+ while (@count_tmp < 5) {
+ @count_tmp = (@count_tmp + 1);
+ if (getq2(TulimsharQuest_DarkInvocator) & $@TorchBits[@count_tmp])
+ @torch_count = (@torch_count + 1);
+ }
+ goto L_TorchTally;
+
+L_Empty:
+ message strcharinfo(0), l("This torch is already lit.");
+ return;
+
+}
+
+007-1,166,145,0 script Torch#1 NPC_NO_SPRITE,{
+ @torch = 1;
+ .@q = getq(TulimsharQuest_DarkInvocator);
+ if (.@q == 5) {
+ CheckTorch();
+ }
+ end;
+OnInit:
+ // Remember: array start at zero, but barrels count start at 1. "Fixing" may break torch 5!
+ setarray $@TorchBits, (1 << 1), (1 << 2), (1 << 3), (1 << 4), (1 << 5), (1 << 6);
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+
+007-1,65,116,0 script Torch#2 NPC_NO_SPRITE,{
+ @torch = 2;
+ .@q = getq(TulimsharQuest_DarkInvocator);
+ if (.@q == 5) {
+ CheckTorch();
+ }
+ end;
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+
+007-1,62,133,0 script Torch#3 NPC_NO_SPRITE,{
+ @torch = 3;
+ .@q = getq(TulimsharQuest_DarkInvocator);
+ if (.@q == 5) {
+ CheckTorch();
+ }
+ end;
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+007-1,35,125,0 script Torch#4 NPC_NO_SPRITE,{
+ @torch = 4;
+ .@q = getq(TulimsharQuest_DarkInvocator);
+ if (.@q == 5) {
+ CheckTorch();
+ }
+ end;
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+007-1,139,24,0 script Torch#5 NPC_NO_SPRITE,{
+ @torch = 5;
+ .@q = getq(TulimsharQuest_DarkInvocator);
+ if (.@q == 5) {
+ CheckTorch();
+ }
+ end;
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
diff --git a/npc/007-1/zarkor.txt b/npc/007-1/zarkor.txt
index e1c903136..048342ad1 100644
--- a/npc/007-1/zarkor.txt
+++ b/npc/007-1/zarkor.txt
@@ -36,15 +36,18 @@
break;
case 5:
mesn "Saulc, the Bug Master";
- mesq l("Sorry, the script is broken again. Blame the usual that the torches are nowhere to be found.");
+ mesq col("What, are we really letting you do something so insane as summoning the Monster King?! Blame Saulc!!", 9);
next;
- mesn "Saulc, the Bug Master";
- mesq l("Once that gets out of the way, this NPC will be finished. See you then!");
+ mesn "Zarkor, the Dark Summoner";
+ mesq l("You didn't lit every torch yet! Hurry up!!");
close;
- // Locations
- // 166, 145
- // 65, 116
- //
+ break;
+ case 6:
+ if (getq2(TulimsharQuest_DarkInvocator) == 0) {
+ setq TulimsharQuest_DarkInvocator, 4;
+ goto L_Quest;
+ }
+ goto L_Ritual;
break;
}
@@ -74,8 +77,8 @@ L_Start:
mesn strcharinfo(0);
select
l("Indeed. Sorry. I'm not giving you anything."),
- rif(countitem(Ruby) >= 1, l("I swear silence, over this bloody ruby."),
- rif(countitem(Topaz) >= 1, l("I swear silence, over this shining topaz.");
+ rif(countitem(Ruby) >= 1, l("I swear silence, over this bloody ruby.")),
+ rif(countitem(Topaz) >= 1, l("I swear silence, over this shining topaz."));
mes "";
switch (@menu) {
@@ -148,9 +151,24 @@ L_Quest:
setq TulimsharQuest_DarkInvocator, 5;
close;
-L_Finish:
- // Yadda yadda yadda dialog
+L_Ritual:
+ percentheal 100, 0;
+ specialeffect(56);
+ mes col("Zarkor spills many fluids on the lake, with much concentration.", 9);
+ next;
+ specialeffect(56);
+ mesn "Zarkor, the Dark Summoner";
+ mes col("Zarkor starts a weird chant.", 9);
+ next;
+ specialeffect(312);
+ mesn "Zarkor, the Dark Summoner";
+ mesq l("MONSTER KING, APPEAR TO ME!");
+ next;
+ goto L_Finish;
+
+
+L_Finish:
// These values were taken from Experience table, and are magic numbers
getexp 9174, 412;
// Pay roughly what you spent
@@ -158,8 +176,23 @@ L_Finish:
// (3000*5 + 4*500G + 1000 + 5*84 + 5*66 + 5*80 + 850) = 20.000
Zeny=Zeny+20000;
+ mesn;
+ mesq l("*Ugh* Thanks for your help. Here... Take this, as promised.");
+ next;
+ mesn strcharinfo(0);
+ mesq l("Are you feeling well? That was a pretty powerful attack!");
+ next;
+ mesn;
+ mesq lg("Do not worry with me, youngling... I'll be fine.");
close;
+OnMonster:
+ end;
+
+OnPCDieEvent:
+ if (getq(TulimsharQuest_DarkInvocator) == 5)
+ setq2 TulimsharQuest_DarkInvocator, 0;
+ end;
OnInit:
.sex = G_MALE;