From 66471a639d64655f44181f26ad72362b00aeed8f Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sat, 23 Mar 2019 11:12:27 -0300 Subject: Replace default behavior for Soul Menhir per community decision. Keep in @ucp an option to roll back to legacy behavior of manually setting it. Again, per community decision. --- npc/000-1/exit.txt | 8 +++++++- npc/003-3/malindou.txt | 11 +++++++++++ npc/commands/ucp.txt | 40 +++++++++++++++++++++++++++++++++++++++- npc/functions/soul_menhir.txt | 8 ++++++-- 4 files changed, 63 insertions(+), 4 deletions(-) (limited to 'npc') diff --git a/npc/000-1/exit.txt b/npc/000-1/exit.txt index 40d1b5e46..e006a21ab 100644 --- a/npc/000-1/exit.txt +++ b/npc/000-1/exit.txt @@ -8,6 +8,12 @@ OnTouch: OnTalk: OnTalkNearby: + // At any time, if you can't leave Nard ship, you must go to nard ship + if (getq(ShipQuests_Julia) < 3) { + warp "002-1", 53, 38; + end; + } + // Switch LOCATION$ and warp to nearest town's Soul Menhir .@lx=array_find(.LOCMASTER_LOC$, LOCATION$); if (.@lx >= 0) { @@ -18,7 +24,7 @@ OnTalkNearby: //if (getsavepoint(0) != "000-1") warp getsavepoint(0), getsavepoint(1), getsavepoint(2); if (getsavepoint(0) != "000-1") warp "Save", 0, 0; if (getsavepoint(0) != "000-1") end; - savepoint "002-1", 53, 38; + //savepoint "002-1", 53, 38; warp "002-1", 53, 38; end; diff --git a/npc/003-3/malindou.txt b/npc/003-3/malindou.txt index d32338e44..20d38d5f1 100644 --- a/npc/003-3/malindou.txt +++ b/npc/003-3/malindou.txt @@ -280,6 +280,17 @@ OnInit: debugmes "* Map Updates"; debugmes ""; } + // Current UPDATE value: Sáb Mar 23 11:11:32 -03 2019 + // Soul Menhir savepoint replaced + if ($UPDATE < 1553350292) { + query_sql("UPDATE `char` SET `save_map` = '000-1'"); + query_sql("UPDATE `char` SET `save_x` = '22'"); + query_sql("UPDATE `char` SET `save_y` = '22'"); + $UPDATE=1553350292; + debugmes ""; + debugmes "* Soul Menhir Save Point replaced"; + debugmes ""; + } diff --git a/npc/commands/ucp.txt b/npc/commands/ucp.txt index 746c83da5..1cafac91a 100644 --- a/npc/commands/ucp.txt +++ b/npc/commands/ucp.txt @@ -19,6 +19,7 @@ function script UserCtrlPanel { rif(getcharid(2) > 0, l("Guild Information")), l("Change Language"), rif(is_admin() && $@GM_OVERRIDE, l("LoF Merge")), + l("Game Settings"), l("Quit"); switch (@menu) @@ -115,7 +116,44 @@ function script UserCtrlPanel { mesc l("Actually, this fails without tmwa dark magic."); mesc l("User account safety is at stake, too, so I'll move this crap to a blackbox once done."); break; - case 7: close; break; + case 7: + do + { + mesc ".:: " + l("GAME SETTINGS") + " ::.", 3; + + // GSET_SOULMENHIR_MANUAL + // Enables/Disable manual position saving on Soul Menhir + if (GSET_SOULMENHIR_MANUAL) + mes l("Soul Menhir automatic saving: ") + col(l("Disabled"), 1); + else + mes l("Soul Menhir automatic saving: ") + col(l("Enabled"), 2); + + + // GSET_DAILYREWARD_SILENT + // Enables/Disable silent dialog for daily rewards + // (otherwise a image will be shown) + if (GSET_DAILYREWARD_SILENT) + mes l("Display daily reward screen: ") + col(l("Disabled"), 1); + else + mes l("Display daily reward screen: ") + col(l("Enabled"), 2); + + mes ""; + select + l("Return to User Control Panel"), + l("Toggle Soul Menhir automatic saving"), + l("Toggle Daily Reward screen"); + mes ""; + + switch (@menu) { + case 2: + GSET_SOULMENHIR_MANUAL=!GSET_SOULMENHIR_MANUAL; break; + case 3: + GSET_DAILYREWARD_SILENT=!GSET_DAILYREWARD_SILENT; break; + } + clear; + } while (@menu != 1); + break; + case 8: close; break; } } while (1); } diff --git a/npc/functions/soul_menhir.txt b/npc/functions/soul_menhir.txt index 0bc914987..437e6d1e8 100644 --- a/npc/functions/soul_menhir.txt +++ b/npc/functions/soul_menhir.txt @@ -98,8 +98,12 @@ L_DontPanic: goto L_Return; L_Do_Save: - savepoint @map$, @x, @y; - specialeffect(4, SELF, getcharid(3)); + if (GSET_SOULMENHIR_MANUAL) { + savepoint @map$, @x, @y; + specialeffect(4, SELF, getcharid(3)); + } else { + dispbottom col(l("Your position is auto-saved when entering a town - use @ucp to change this behavior."), 1); + } // As we have a dialog box open, this function produces an undesirable player talk. //savepointparticle @map$, @x, @y, NO_INN; -- cgit v1.2.3-70-g09d2