diff options
-rw-r--r-- | db/quest_db.conf | 7 | ||||
-rw-r--r-- | db/re/map_zone_db.conf | 22 | ||||
-rw-r--r-- | npc/000-1/exit.txt | 8 | ||||
-rw-r--r-- | npc/018-5-boss/_import.txt | 1 | ||||
-rw-r--r-- | npc/018-5-boss/mapflag.txt | 1 | ||||
-rw-r--r-- | npc/018-5/_import.txt | 1 | ||||
-rw-r--r-- | npc/018-5/soul_menhir.txt | 2 | ||||
-rw-r--r-- | npc/018-5/town.txt | 142 |
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; +} + |