summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf7
-rw-r--r--db/re/map_zone_db.conf22
-rw-r--r--npc/000-1/exit.txt8
-rw-r--r--npc/018-5-boss/_import.txt1
-rw-r--r--npc/018-5-boss/mapflag.txt1
-rw-r--r--npc/018-5/_import.txt1
-rw-r--r--npc/018-5/soul_menhir.txt2
-rw-r--r--npc/018-5/town.txt142
8 files changed, 178 insertions, 6 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 3f5633e61..3b5bad2dd 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -328,7 +328,7 @@ quest_db: (
// ID 151 to 170: Artis Quests
// ID 171 to 190: Esperia Quests
-// ID 191 to 269: Dungeon Quests
+// ID 191 to 249: Dungeon Quests
{
Id: 191
Name: "MineQuest_Tycoon"
@@ -342,6 +342,11 @@ quest_db: (
Name: "MineQuest_Caelum"
},
+// ID 250 to 269: Lilit Quests
+{
+ Id: 250
+ Name: "LilitQuest_Access"
+},
// ID 270 to 299: Land Of Fire Quests
{
Id: 270
diff --git a/db/re/map_zone_db.conf b/db/re/map_zone_db.conf
index 8a8a38b70..76f8f66f2 100644
--- a/db/re/map_zone_db.conf
+++ b/db/re/map_zone_db.conf
@@ -109,6 +109,28 @@ zones: (
}
},
{
+ /* No Tricks Zone prevents penalty and NV_TRICKDEAD */
+ name: "No Tricks"
+
+ disabled_skills: {
+ NV_TRICKDEAD: "ALL"
+ }
+
+ disabled_items: {
+ }
+
+ mapflags: (
+ "nopenalty",
+ "nosave 000-1,22,22",
+ )
+
+ /* "command:min-group-lv-to-override" e.g. "heal: 70" */
+ disabled_commands: {
+ }
+ skill_damage_cap: {
+ }
+},
+{
/* MMO Zone is not the place for GMs to mess with. */
name: "MMO"
diff --git a/npc/000-1/exit.txt b/npc/000-1/exit.txt
index ddbcc2321..40d1b5e46 100644
--- a/npc/000-1/exit.txt
+++ b/npc/000-1/exit.txt
@@ -23,10 +23,10 @@ OnTalkNearby:
end;
OnInit:
- setarray .LOCMASTER_LOC$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Nival", "Frostia"; // 018-5 Lilit
- setarray .LOCMASTER_MAP$, "005-1", "003-1", "009-1", "012-1", "017-1", "020-1", "024-1";
- setarray .LOCMASTER_X, 34, 40, 26, 86, 119, 56, 94;
- setarray .LOCMASTER_Y, 101, 49, 30, 69, 87, 62, 42;
+ setarray .LOCMASTER_LOC$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Lilit", "Nival", "Frostia";
+ setarray .LOCMASTER_MAP$, "005-1", "003-1", "009-1", "012-1", "017-1", "018-5", "020-1", "024-1";
+ setarray .LOCMASTER_X, 34, 40, 26, 86, 119, 111, 56, 94;
+ setarray .LOCMASTER_Y, 101, 49, 30, 69, 87, 53, 62, 42;
debugmes "Locmaster: Index 0: %s [%s.gat (%d, %d)]", .LOCMASTER_LOC$[0], .LOCMASTER_MAP$[0], .LOCMASTER_X[0], .LOCMASTER_Y[0];
debugmes "Locmaster: Index 2: %s [%s.gat (%d, %d)]", .LOCMASTER_LOC$[2], .LOCMASTER_MAP$[2], .LOCMASTER_X[2], .LOCMASTER_Y[2];
diff --git a/npc/018-5-boss/_import.txt b/npc/018-5-boss/_import.txt
index 7c584eb0e..6f320c752 100644
--- a/npc/018-5-boss/_import.txt
+++ b/npc/018-5-boss/_import.txt
@@ -1,2 +1,3 @@
// Map 018-5-boss: Mountain Cave
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/018-5-boss/mapflag.txt",
diff --git a/npc/018-5-boss/mapflag.txt b/npc/018-5-boss/mapflag.txt
new file mode 100644
index 000000000..0c36c3058
--- /dev/null
+++ b/npc/018-5-boss/mapflag.txt
@@ -0,0 +1 @@
+018-5-boss mapflag zone No Tricks
diff --git a/npc/018-5/_import.txt b/npc/018-5/_import.txt
index d827bfe88..f411db7bb 100644
--- a/npc/018-5/_import.txt
+++ b/npc/018-5/_import.txt
@@ -3,3 +3,4 @@
"npc/018-5/_mobs.txt",
"npc/018-5/_warps.txt",
"npc/018-5/soul_menhir.txt",
+"npc/018-5/town.txt",
diff --git a/npc/018-5/soul_menhir.txt b/npc/018-5/soul_menhir.txt
index e4d2ea439..49916cda7 100644
--- a/npc/018-5/soul_menhir.txt
+++ b/npc/018-5/soul_menhir.txt
@@ -5,7 +5,7 @@
// Soul Menhir
018-5,111,52,0 script Soul Menhir#lil NPC_SOUL_MOSS,{
- @map$ = "018-1";
+ @map$ = "018-5";
setarray @Xs, 110, 111, 112;
setarray @Ys, 53, 53, 53;
@x = 0;
diff --git a/npc/018-5/town.txt b/npc/018-5/town.txt
new file mode 100644
index 000000000..1c3ffa8fd
--- /dev/null
+++ b/npc/018-5/town.txt
@@ -0,0 +1,142 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// Reset LOCATION$ when entering a town
+
+// .@q = LilitQuest_Access
+// 0 - Access not granted
+// q2 - Number of attempts
+// 1 - Access granted
+// 2 - Tree Minigame complete.
+
+// This NPC have a 1x1 touch area.
+// If you logout, then relog, and try to fool it by moving - you'll be caught
+// and slided to the right position.
+018-5,97,69,0 script #LocLilit NPC_HIDDEN,1,1,{
+ end;
+
+OnTouch:
+ .@q=getq(LilitQuest_Access);
+ if (!.@q)
+ goto L_AccessDenied;
+ else
+ LOCATION$="Lilit";
+ end;
+
+L_AccessDenied:
+ getmapxy(.@m$, .@x, .@y, 0);
+ // Cheater detected (either coming to or from Lilit), deploy countermeasures at once
+ if (.@x != 97 || .@y != 69) {
+ slide 97, 69;
+ atcommand("@jailfor 3mn "+strcharinfo(0));
+ dispbottom l("Cheater detected! You have a three minutes sentence to fulfill, now.");
+ end;
+ }
+ mesn ("???");
+ mesc l("You should not be here...");
+ next;
+ mesn ("???");
+ mesc l("Leave this place now, defiler...");
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("Step forward"),
+ l("Step backward");
+ mes "";
+
+ // First option is a bad choice, but the only right choice.
+ if (@menu == 1) {
+ mesn ("???");
+ mesc l("DIE, FILTHY @@!", strtoupper(get_race()));
+ percentheal -30, -30;
+ next;
+ } else {
+ warp "018-5-1", 77, 53;
+ end;
+ }
+
+ mesn ("???");
+ mesc l("Ho... I see you are a tough one...");
+ next;
+ mesn ("???");
+ mesc l("What brings you here, @@?", get_race());
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("To help fairies"),
+ l("To explore these lands"),
+ l("To collect snake skin"),
+ l("To do quests"),
+ l("To aid those in need"),
+ l("Because I am awesome!"),
+ l("I don't know");
+ mes "";
+ mesn ("???");
+ mesc l("I don't care for your reasons.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("I am the Yetifly, guardian of butter and fairies.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("AND YOU ARE NOT WELCOME HERE!!"), 1;
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ movecam rand(-20,20), rand(-20,20);
+ sleep2(60);
+ restorecam;
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("Unless, of course, if you can prove your strength, challenging me to a duel.");
+ next;
+ mesc l("How will you respond?!"), 1;
+ select
+ l("Bring it on!"),
+ l("Nah I am a chicken :b");
+ mes "";
+ if (@menu == 2) {
+ closeclientdialog;
+ if (rand(1,4) == 3)
+ slide 98, 83;
+ else
+ slide 61, 147;
+ dispbottom l("The Yetifly drops you off the cliff. Good job, noob.");
+ percentheal -10, 0;
+ end;
+ }
+ mesn l("Yetifly the Mighty");
+ mesq l("That wouldn't be fair to you, though. So, you don't need to defeat me.");
+ next;
+ mesn l("Yetifly the Mighty");
+ mesq l("So, you just need to survive for one minute, and I'll consider you are good enough.");
+ if (getskilllv(NV_TRICKDEAD)) mesc l("WARNING: Fake Death skill is disabled on the fight."), 1;
+ next;
+ mesc l("Click \"Next\" to begin the fight."), 1;
+ next;
+ closeclientdialog;
+ //addtimer(1000, "ready? + 1s GO! spawn and keep flowing timers every 10s to check if map is OK + finish.");
+ // Create instance.
+ warp "018-5-boss", 0, 0;
+ end;
+}
+
+// Double check
+018-5,99,64,0 script #LilitAccCtrl NPC_HIDDEN,1,1,{
+OnTouch:
+ .@q=getq(LilitQuest_Access);
+ if (!.@q) {
+ slide 97, 69;
+ atcommand("@jailfor 3mn "+strcharinfo(0));
+ dispbottom l("Cheater detected! You have a three minutes sentence to fulfill, now.");
+ }
+ end;
+}
+