summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2025-05-16 19:54:44 -0300
committerJesusaves <cpntb1@ymail.com>2025-05-16 19:54:44 -0300
commit7409ca4b0bb6faf85cbe0f21bf02095975e78da9 (patch)
treeb33cfdb0f5e2a646d53e72abdbe21e23227f72f0
parent18c87454d5b7a4760da7774bfb971cc58f252be0 (diff)
downloadserverdata-7409ca4b0bb6faf85cbe0f21bf02095975e78da9.tar.gz
serverdata-7409ca4b0bb6faf85cbe0f21bf02095975e78da9.tar.bz2
serverdata-7409ca4b0bb6faf85cbe0f21bf02095975e78da9.tar.xz
serverdata-7409ca4b0bb6faf85cbe0f21bf02095975e78da9.zip
Several changes on several things, mostly related to Final Showdown.
But also some minor balance tweaks.
-rw-r--r--db/constants.conf1
-rw-r--r--db/re/map_zone_db.conf24
-rw-r--r--maps/re/001-15.mcachebin389 -> 390 bytes
-rw-r--r--npc/001-1/bgmaster.txt7
-rw-r--r--npc/001-16/obelisk.c28
-rw-r--r--npc/018-2-2/main.txt5
-rw-r--r--npc/functions/hub.txt14
-rw-r--r--npc/functions/politics.txt2
8 files changed, 58 insertions, 23 deletions
diff --git a/db/constants.conf b/db/constants.conf
index abece060f..7a7293611 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1898,6 +1898,7 @@ constants_db: {
NPC_STOVE: 284
NPC_TIKI: 285
NPC_ML_CIRCLE: 286
+ NPC_ML_ANDREI: 287
// TMW-BR Non Animated NPCs
NPC_SHOPPAKEP: 301
diff --git a/db/re/map_zone_db.conf b/db/re/map_zone_db.conf
index f4cbc86f6..7e017ac55 100644
--- a/db/re/map_zone_db.conf
+++ b/db/re/map_zone_db.conf
@@ -708,11 +708,11 @@ zones: (
disabled_skills: {
AL_WARP: "ALL"
AL_TELEPORT: "ALL"
- WE_CALLPARTNER: "ALL"
+ //WE_CALLPARTNER: "ALL"
WE_CALLPARENT: "ALL"
WE_CALLBABY: "ALL"
SC_DIMENSIONDOOR: "ALL"
- GD_EMERGENCYCALL: "ALL"
+ //GD_EMERGENCYCALL: "ALL"
}
disabled_items: {
@@ -755,7 +755,7 @@ zones: (
recall: 100
recallall: 100
monster: 100
- item: 100
+ //item: 100
summon: 100
killer: 100
killable: 100
@@ -788,6 +788,24 @@ zones: (
}
},
{
+ name: "FinalMMO No Tricks"
+ inherit: ( "FinalMMO" )
+ disabled_skills: {
+ AL_WARP: "ALL"
+ AL_TELEPORT: "ALL"
+ //WE_CALLPARTNER: "ALL"
+ WE_CALLPARENT: "ALL"
+ WE_CALLBABY: "ALL"
+ SC_DIMENSIONDOOR: "ALL"
+ //GD_EMERGENCYCALL: "ALL"
+ AM_REST: "ALL"
+ AM_RESURRECTHOMUN: "ALL"
+ AM_CALLHOMUN: "ALL"
+ NV_TRICKDEAD: "ALL"
+ GD_EMERGENCYCALL: "ALL"
+ }
+},
+{
name: "Towns"
mapflags: (
diff --git a/maps/re/001-15.mcache b/maps/re/001-15.mcache
index 9032dc493..78c75da2a 100644
--- a/maps/re/001-15.mcache
+++ b/maps/re/001-15.mcache
Binary files differ
diff --git a/npc/001-1/bgmaster.txt b/npc/001-1/bgmaster.txt
index b9c8d63c3..52efdd38c 100644
--- a/npc/001-1/bgmaster.txt
+++ b/npc/001-1/bgmaster.txt
@@ -33,19 +33,18 @@ L_Moubootaur:
mesq l("I have absolutely no idea on what to expect inside, so you should come prepared! Make sure you have a party with you, because you might be stuck there %s if you fail.", b(l("FOREVER"))); // You _can_ leave, but it's somewhat difficult
next;
- // Superior Safeguard
- if (!is_staff()) goto L_TODO;
+ // Superior Safeguard (TODO WIP)
+ if (!is_staff() && !debug) goto L_TODO;
// Ask if the player is sure they want to go to the showdown
mesc l("With all that said, are you sure you want to enter?!"), 1;
if (askyesnosafe() == ASK_NO) goto L_Close;
warp "001-15", any(52,53), 58;
+ changeplayermusic "around_the_world.ogg";
// Start main timer
if (!$@ML_SHOWDOWN)
donpcevent "#Moubootaur::OnIntroCutscene";
- // TODO: bg_join?
- // TODO: "#Moubootaur"::PermanentDebuffs()
goto L_Close;
L_TODO:
diff --git a/npc/001-16/obelisk.c b/npc/001-16/obelisk.c
index afcdef451..affa6bc62 100644
--- a/npc/001-16/obelisk.c
+++ b/npc/001-16/obelisk.c
@@ -12,11 +12,26 @@
mesc l("Lost soul who wanders the mazes of life and death, the path lies herein ahead, but only those of stout heart may return.");
mesc l("This is the challenge which Mr. Saves has determined upon all those whom die outside the Mana Source's Jurisdiction.");
.@ans = ASK_NO;
+ next;
if ($@ML_SHOWDOWN) {
- next;
- mesc l("Do you wish to return to the Moubootaur Showdown as an undead?"), 1;
- next;
- .@ans = askyesno();
+ // Determine if your body still exists and can be recovered
+ // (Logout should have created it, but it lasts only 10 minutes)
+ // Player_Name#ML!GIDGID
+ // So 13 chars available for char name
+ if (getstrlen(strcharinfo(0)) > 12)
+ .@n$=substr(strcharinfo(0), 0, 12);
+ else
+ .@n$=strcharinfo(0);
+ .@n$=sprintf("%s#ML!%06d", .@n$, getcharid(0));
+ .@bodyId = getnpcid(.@n$);
+ if (.@bodyId) {
+ mesc l("Do you wish to return to the Moubootaur Showdown as an undead?"), 1;
+ next;
+ .@ans = askyesno();
+ } else {
+ mesc l("Your physical body no longer exists; you will need to use the Obelisk of Power and hope it recreates one for you!"), 1;
+ next;
+ }
}
closeclientdialog;
if (.@ans == ASK_YES)
@@ -34,7 +49,10 @@ OnInit:
.@ans = askyesno();
closeclientdialog;
if (.@ans == ASK_YES) {
- .@dest = any(TP_FROST, TP_HALIN, TP_LOF, TP_FORT, TP_LILIT, TP_CANDOR, TP_ARTIS); // TP_BOSSR? TP_NIVAL?
+ if (getq(LilitQuest_Access))
+ .@dest = any(TP_FROST, TP_HALIN, TP_LOF, TP_FORT, TP_LILIT, TP_CANDOR, TP_ARTIS); // TP_BOSSR? TP_NIVAL?
+ else
+ .@dest = any(TP_FROST, TP_HALIN, TP_LOF, TP_FORT, TP_CANDOR, TP_ARTIS); // TP_BOSSR? TP_NIVAL?
.@i = array_find($@LOCMASTER_TP, .@dest);
warp $@LOCMASTER_MAP$[.@i], $@LOCMASTER_X[.@i], $@LOCMASTER_Y[.@i];
EnterTown($@LOCMASTER_LOC$[.@i], true);
diff --git a/npc/018-2-2/main.txt b/npc/018-2-2/main.txt
index e650737bf..01772075e 100644
--- a/npc/018-2-2/main.txt
+++ b/npc/018-2-2/main.txt
@@ -100,7 +100,7 @@ OnPlayerCycle:
end;
}
// Heroes Hold has some "traps" which complement the difficulty
- if (@HH_NOTRAP < @HH_TIMER && rand2(1000) <= @HH_LEVEL) {
+ if (@HH_NOTRAP < gettimetick(2) && rand2(1000) <= @HH_LEVEL) {
dispbottom any(l("You set off a trap!"),
l("A trap is sprung on you!"),
l("The floor suddenly raises spikes up!"),
@@ -111,7 +111,8 @@ OnPlayerCycle:
// You lose some HP and MP, depending on the difficulty
heal -(@HH_LEVEL*rand2(3,6)), -(@HH_LEVEL/2);
// Depending on your INT and VIT, you can avoid further traps
- @HH_NOTRAP = @HH_TIMER + min(10, readparam2(bVit)/15) + min(10, readparam2(bInt)/15);
+ // (Giving up to *15* seconds immunity)
+ @HH_NOTRAP = gettimetick(2) + min(5, readparam2(bVit)/30) + min(10, readparam2(bInt)/15);
// Otherwise, depending on your VIT, you get an ailment
if (rand2(250) > readparam2(bVit)) {
// Determine the dangers of the random trap
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index ba0c0b5c5..7b7d06351 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -14,6 +14,10 @@ function script HUB_Login {
if (.@mapa$ == "020-7-1") {
addtimer(1000, "#BlueSageHUB::OnCycle");
}
+ // Login on Death Maze
+ if (.@mapa$ == "001-16") {
+ SC_Bonus(86400, SC_ELLIBAN, 1);
+ }
// Random Treasure cleaning
if (CHAREG_CLEANUP < gettimetick(2)-CHEST_WAITTIME)
@@ -119,7 +123,7 @@ function script HUB_Logout {
if (@grace) {
// Grace is upon you (ie. script death)
@grace=false;
- } else if ((.@zone$ == "MMO" || .@zone$ == "SuperMMO" || .@zone$ == "FinalMMO") && ABSOLVE_CNT <= 3) {
+ } else if (compare(.@zone$, "MMO") && ABSOLVE_CNT <= 3) {
// Absolve (limited attempts)
ABSOLVE_CNT+=1;
dispbottom l("This is a special map so your death is not counted.");
@@ -1443,13 +1447,7 @@ function script HUB_PCBonus {
/* Nullify all assigned stats, and general debuffs */
if (Class == Skelli) {
- bonus bStr, 1-readparam(bStr);
- bonus bAgi, 1-readparam(bAgi);
- bonus bVit, 1-readparam(bVit);
- bonus bDex, 1-readparam(bDex);
- bonus bInt, 1-readparam(bInt);
- bonus bLuk, 1-readparam(bLuk);
- bonus bAllStats, -REBIRTH;
+ //sc_start(SC_ELLIBAN -> to login sequence, and no expire on death
// Now comes SEVERAL debuffs for this specific class
bonus bMaxHPrate, -25;
bonus bMaxSPrate, -25;
diff --git a/npc/functions/politics.txt b/npc/functions/politics.txt
index 7fe0600ca..437b621a3 100644
--- a/npc/functions/politics.txt
+++ b/npc/functions/politics.txt
@@ -585,7 +585,7 @@ function script POL_Manage {
}
break;
case 62:
- .@cost = 75000 - (.@TX * 6) - (.@RP * 15);
+ .@cost = 65000 - (.@TX * 5) - (.@RP * 400);
mesc l("Moubootaur Showdown Preparations + Marketing"), 3;
mesc l("You need @@ GP to make this investment.", fnum(.@cost));
mesc l("This investment will allow the Alliance to make a better effort when facing down the Moubootaur.");