summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-03-16 18:43:07 -0300
committerJesusaves <cpntb1@ymail.com>2019-03-16 18:43:07 -0300
commitc1ad5cf87d31b3a8642e81c45fffd0b3d53312b7 (patch)
treefc7a476a410a58e77d3c2f55d2ec14c5e3e61c80
parent9747b07d61f437f3b3eb20749473a5ecae33c89b (diff)
downloadserverdata-c1ad5cf87d31b3a8642e81c45fffd0b3d53312b7.tar.gz
serverdata-c1ad5cf87d31b3a8642e81c45fffd0b3d53312b7.tar.bz2
serverdata-c1ad5cf87d31b3a8642e81c45fffd0b3d53312b7.tar.xz
serverdata-c1ad5cf87d31b3a8642e81c45fffd0b3d53312b7.zip
Prepare to introduce Lilit.
Of course, the first part is handling player arrival. Then the boss fight, the monsters on the cave, and the "quest" to get on the Island. By last, we must add content to Lilit. Currently, it is only for sight-seeing.
-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;
+}
+