diff options
-rw-r--r-- | npc/001-1/bgmaster.txt | 10 | ||||
-rw-r--r-- | npc/001-1/eventmaster.txt | 8 | ||||
-rw-r--r-- | npc/001-1/portal.txt | 8 | ||||
-rw-r--r-- | npc/002-4/elmo.txt | 2 | ||||
-rw-r--r-- | npc/003-1-3/thief.txt | 4 | ||||
-rw-r--r-- | npc/003-1/cyndala.txt | 5 | ||||
-rw-r--r-- | npc/003-1/luca.txt | 4 | ||||
-rw-r--r-- | npc/003-1/michel.txt | 35 | ||||
-rw-r--r-- | npc/003-1/tamiloc.txt | 2 | ||||
-rw-r--r-- | npc/003-13/arnea.txt | 8 | ||||
-rw-r--r-- | npc/003-2/lua.txt | 6 | ||||
-rw-r--r-- | npc/003-5/arnea.txt | 9 | ||||
-rw-r--r-- | npc/005-1/vincent.txt | 1 | ||||
-rw-r--r-- | npc/005-7/trainer.txt | 2 | ||||
-rw-r--r-- | npc/008-1/confused-tree.txt | 16 | ||||
-rw-r--r-- | npc/commands/debug-look.txt | 2 | ||||
-rw-r--r-- | npc/commands/debug-quest.txt | 2 | ||||
-rw-r--r-- | npc/commands/event.txt | 2 | ||||
-rw-r--r-- | npc/commands/motd.txt | 2 | ||||
-rw-r--r-- | npc/commands/music.txt | 2 | ||||
-rw-r--r-- | npc/commands/rate-management.txt | 4 | ||||
-rw-r--r-- | npc/commands/scheduled-broadcasts.txt | 2 | ||||
-rw-r--r-- | npc/commands/super-menu.txt | 10 | ||||
-rw-r--r-- | npc/functions/permissions.txt | 36 | ||||
-rw-r--r-- | npc/scripts.conf | 4 |
25 files changed, 87 insertions, 99 deletions
diff --git a/npc/001-1/bgmaster.txt b/npc/001-1/bgmaster.txt index dbac830c3..74084dd02 100644 --- a/npc/001-1/bgmaster.txt +++ b/npc/001-1/bgmaster.txt @@ -1,13 +1,13 @@ // TMW2 Scripts. // Author: // Jesusalva - -// Original File +// Description +// Cassia and her lieutenants manages Aeros Battlegrounds 001-1,96,37,0 script Cassia NPC_FEMALE,{ mesn; - if (getgmlevel()) goto L_Control; + if (is_gm()) goto L_Control; if ($@BGMaster1) goto L_Busy; L_Intro: @@ -36,7 +36,7 @@ L_Busy: L_Control: menu l("Introduce"), L_Intro, - rif($@BGMaster1 != 1 && getgmlevel() >= 99,l("Enable BG")), L_On, + rif($@BGMaster1 != 1 && is_gm(),l("Enable BG")), L_On, l("Disable BG"), L_Off; L_On: @@ -56,6 +56,8 @@ L_On: close; L_Off: + delwaitingroom("Lt. Randy"); + delwaitingroom("Lt. Gerry"); disablenpc "Lt. Randy"; disablenpc "Lt. Gerry"; mes "Event disabled."; diff --git a/npc/001-1/eventmaster.txt b/npc/001-1/eventmaster.txt index e82ccda99..b76a6cd97 100644 --- a/npc/001-1/eventmaster.txt +++ b/npc/001-1/eventmaster.txt @@ -9,7 +9,7 @@ areamonster("001-1", 171, 0, 339, 158, getarg(0), getarg(1), getarg(2), "Mana Being#001-1::OnAerosMobDeath"); } - if (!getgmlevel()) goto L_Unauthorized; + if (!is_gm()) goto L_Unauthorized; @log_spawns=0; @log_ratio=.coins_rate; @@ -168,8 +168,10 @@ L_Drop: L_Rate: mes ""; mes "Current drop rate: " + str(.coins_rate); - mes "Insert drop rate (from 0 to 10000). Use -1 to disable."; + mes "Insert drop rate (from 0 to 10000, capped at 5000 or 50%). Use -1 to disable."; input .coins_rate; + if (.coins_rate > 5000) + .coins_rate=5000; mes ""; mes "Ratio adjusted."; next; @@ -203,7 +205,7 @@ OnInit: end; OnCall: - if (!is_evtc()) + if (!is_admin()) end; if (getmapname() != "001-1") { dispbottom "This command can only be used at aeros."; diff --git a/npc/001-1/portal.txt b/npc/001-1/portal.txt index 4708930e8..40f3e3d9c 100644 --- a/npc/001-1/portal.txt +++ b/npc/001-1/portal.txt @@ -12,10 +12,10 @@ OnTouch: mes l("Would you like to leave this place?"); menu l("No."), L_Close, - rif(getgmlevel() && !$@GM_EVENT, l("Enable Event")), L_Enable, - rif(getgmlevel() && $@GM_EVENT, l("Disable Event")), L_Disable, - rif(getgmlevel() && .WALL, l("Open Extension")), L_DelWall, - rif(getgmlevel() && !.WALL, l("Close Extension")), L_AddWall, + rif(is_admin() && !$@GM_EVENT, l("Enable Event")), L_Enable, + rif(is_admin() && $@GM_EVENT, l("Disable Event")), L_Disable, + rif(is_gm() && .WALL, l("Open Extension")), L_DelWall, + rif(is_gm() && !.WALL, l("Close Extension")), L_AddWall, l("Yes."), L_Leave; L_Leave: diff --git a/npc/002-4/elmo.txt b/npc/002-4/elmo.txt index 734006e1b..5908692ef 100644 --- a/npc/002-4/elmo.txt +++ b/npc/002-4/elmo.txt @@ -41,8 +41,6 @@ L_Candor: .@q=getq(CandorQuest_Barrel); if (.@q < 4) mes l("- I think you can help the storehouse for some quick cash."); - //if (getgmlevel() == 99 && .@q > 0 && .q < 4) - // mes l("Please, Game Master, help Zegas @@!", getquestlink(CandorQuest_Barrel)); // Kids Quest .@q=getq(CandorQuest_HAS); diff --git a/npc/003-1-3/thief.txt b/npc/003-1-3/thief.txt index 9e3fd46e0..bdcfc2253 100644 --- a/npc/003-1-3/thief.txt +++ b/npc/003-1-3/thief.txt @@ -2,7 +2,7 @@ // Author: // Jesusalva // Description: -// Temporary NPC to block path to Halinarzo, later a controlled warp +// Temporary NPC to block path to Halinarzo, later a controlled warp. May be removed soon. 003-1-3,45,35,0 script Thief#temp003 NPC_PLAYER,0,0,{ @@ -15,7 +15,7 @@ close; OnTouch: - if (getgmlevel()) goto L_Warp; // if (BaseLevel >= 15) and this NPC must be invisible + if (is_admin()) goto L_Warp; // if (BaseLevel >= 15) and this NPC must be invisible warp "003-1-3", 45, 36; percentheal -10,0; mesn; diff --git a/npc/003-1/cyndala.txt b/npc/003-1/cyndala.txt index a4dc4c92d..7bb026b5e 100644 --- a/npc/003-1/cyndala.txt +++ b/npc/003-1/cyndala.txt @@ -3,7 +3,7 @@ // Saulc // Jesusalva // Description: -// Will be with dye functions for a while... +// Will be with dye functions for a while... May be wrong. Only Card2 is available // Original code from evol // Authors: @@ -94,7 +94,7 @@ l("Excuse me."), l("Could you bleach my clothes?"), l("What can you say about dyes?"), - rif(getgmlevel(), l("Technical problem, gimme info about an item.")); + rif(is_staff(), l("Technical problem, gimme info about an item.")); switch (@menu) { @@ -119,6 +119,7 @@ { mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i)); } + mes "Note named items (Card1 254 and 255) have Card3 and Card4 reserved"; break; default: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("I wish you a good time in town."); diff --git a/npc/003-1/luca.txt b/npc/003-1/luca.txt index 2eadf0507..b51553bde 100644 --- a/npc/003-1/luca.txt +++ b/npc/003-1/luca.txt @@ -12,8 +12,8 @@ if (BaseLevel < 40) close; if (getskilllv(SM_BASH) >= 1) mesq l("Are you using my skill?"); if (getskilllv(SM_BASH) >= 1) close; - if (!getgmlevel()) mesq l("Hey, you're strong! Congratulations!"); - if (!getgmlevel()) close; + if (!is_staff()) mesq l("Hey, you're strong! Congratulations!"); + if (!is_staff()) close; mesq l("Hey, you are strong! But still, so, so GREEN! You're PATHETIC! I mean, look your skill list! Empty!"); next; // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1. diff --git a/npc/003-1/michel.txt b/npc/003-1/michel.txt index 1024e401c..736aa2424 100644 --- a/npc/003-1/michel.txt +++ b/npc/003-1/michel.txt @@ -39,8 +39,9 @@ mes("5."+.@name$[4]+" ("+.@value[4]+")"); next; - + // Anyone with GM Level, staff or not, is allowed to latest GM logs if (!getgmlevel()) close; + mes ""; .@nb = query_sql("select char_name, command from `atcommandlog` ORDER BY atcommand_id DESC LIMIT 10", .@name$, .@value$); mes l("##BLatest GM Commands##b"); @@ -55,22 +56,24 @@ mes("9."+.@name$[8]+" ("+.@value$[8]+")"); mes("10."+.@name$[9]+" ("+.@value$[9]+")"); - if (getgmlevel() < 99) close; + // Only Admins are allowed to change the HoF Scoreboard + if (!is_admin()) close; + next; - if (getgmlevel()) mes "##BGM Information##b"; - if (getgmlevel()) mes "We are currently relying in Karma to generate this Hall Of Fame."; - if (getgmlevel()) mes ""; - if (getgmlevel()) mes "##B Manual Edition ##b"; - if (getgmlevel()) mes "To reliably change Karma values, you must use @set Karma."; - if (getgmlevel()) mes "But before, check on MySQL the previous karma value, because this command overrides it."; - if (getgmlevel()) mes "Therefore, it is advised to DON'T change this by hand."; - if (getgmlevel()) mes ""; - if (getgmlevel()) mes "##B Scripting Edition ##b"; - if (getgmlevel()) mes "Is known to work. This hall of fame will need a few minutes to update itself."; - if (getgmlevel()) mes ""; - if (getgmlevel()) mes "##B Technical Notes ##b"; - if (getgmlevel()) mes "In future we may start Fame field directly (but it is not displayed on client, thus, we decided to use Karma)."; - //if (getgmlevel()) set Karma, Karma + 5; + mes "##BGM Information##b"; + mes "We are currently relying in Karma to generate this Hall Of Fame."; + mes ""; + mes "##B Manual Edition ##b"; + mes "To reliably change Karma values, you must use @set Karma."; + mes "But before, check on MySQL the previous karma value, because this command overrides it."; + mes "Therefore, it is advised to DON'T change this by hand."; + mes ""; + mes "##B Scripting Edition ##b"; + mes "Is known to work. This hall of fame will need a few minutes to update itself."; + mes ""; + mes "##B Technical Notes ##b"; + mes "In future we may start Fame field directly (but it is not displayed on client, thus, we decided to use Karma)."; + //set Karma, Karma + 5; close; OnInit: diff --git a/npc/003-1/tamiloc.txt b/npc/003-1/tamiloc.txt index 007e260e6..f6812288f 100644 --- a/npc/003-1/tamiloc.txt +++ b/npc/003-1/tamiloc.txt @@ -32,7 +32,7 @@ l("What is my current hairstyle and hair color?"), l("I'd like to get a different style."), l("Can you do something with my color?"), - rif(getgmlevel(), l("I am a GM, and I want to change my Race!")), + rif(is_staff(), l("I am a GM, and I want to change my Race!")), l("I'm fine for now, thank you."); switch (@menu) diff --git a/npc/003-13/arnea.txt b/npc/003-13/arnea.txt index 151a88bd3..92fda2805 100644 --- a/npc/003-13/arnea.txt +++ b/npc/003-13/arnea.txt @@ -7,8 +7,10 @@ 003-13,29,29,0 script Arnea#003-13 NPC_ELF_F,{ // FIXIT - hello; - end; + if (!is_staff()) { + hello; + end; + } mes "npc name: " + .name$; mes "npc ext name: " + .extname$; @@ -34,7 +36,7 @@ L_Manage: mesn; switch (select( "warp back", - rif(getcharid(3) == $@ARENA_INSTANCES[replacestr(instance_mapname("003-13"), "003-13@a", "")] || getgmlevel(),"delete"), + rif(getcharid(3) == $@ARENA_INSTANCES[replacestr(instance_mapname("003-13"), "003-13@a", "")] || is_gm(),"delete"), "cancel")) { case 1: diff --git a/npc/003-2/lua.txt b/npc/003-2/lua.txt index e35c35734..f67bd9e2d 100644 --- a/npc/003-2/lua.txt +++ b/npc/003-2/lua.txt @@ -13,9 +13,9 @@ L_Menu: menu l("Ok, see you later."),L_Close, rif(.@n == 1, l("I was found near Candor Island, on a raft, and can't remember anything. Do you know who I am?")), L_Info, - rif(getgmlevel(), l("I need a GM set, please!")), L_GMItems, - rif(getgmlevel() && #GMEVENT_T <= gettimetick(2), l("I plan in doing an event! Give me the coins!")), L_GMEvent, - rif(getgmlevel(), l("Tell people the name of a new hero.")), L_NewHero, + rif(is_gm(), l("I need a GM set, please!")), L_GMItems, + rif(is_gm() && #GMEVENT_T <= gettimetick(2), l("I plan in doing an event! Give me the coins!")), L_GMEvent, + rif(is_staff(), l("Tell people the name of a new hero.")), L_NewHero, l("What alliance?"),-; mes ""; mesn; diff --git a/npc/003-5/arnea.txt b/npc/003-5/arnea.txt index eeb95f1e3..a55db1fd0 100644 --- a/npc/003-5/arnea.txt +++ b/npc/003-5/arnea.txt @@ -6,15 +6,14 @@ // Arena for Duels and PVP (003-13,31,31) 003-5,33,37,0 script Arnea NPC_ELF_F,{ - // FiXIT - hello; - end; - if (DESTROY_ME) { DESTROY_ME=0; instance_destroy(DESTROY_MY_ID); } - if (!getgmlevel()) goto L_Incomplete; + + // FIXIT code + if (!is_staff()) goto L_Incomplete; + mesn; mesq l("Welcome to the Arena. Select your action"); menu diff --git a/npc/005-1/vincent.txt b/npc/005-1/vincent.txt index 7368804de..b6c3ed85f 100644 --- a/npc/005-1/vincent.txt +++ b/npc/005-1/vincent.txt @@ -12,7 +12,6 @@ .LegsCount = 12; .@q = getq(CandorQuest_Vincent); - //if (getgmlevel()) mes str(.@q); if (.@q == 1) goto L_CheckItems; if (.@q == 2) goto L_QuestDone; diff --git a/npc/005-7/trainer.txt b/npc/005-7/trainer.txt index c1ba4735f..9bbf181a6 100644 --- a/npc/005-7/trainer.txt +++ b/npc/005-7/trainer.txt @@ -460,7 +460,7 @@ OnKillHouseMaggot: message strcharinfo(0), l("@@/5 House Maggots", .@k+1); } } else { - if (getgmlevel()) + if (is_staff()) dispbottom "It's working. (T:OKHM)"; } end; diff --git a/npc/008-1/confused-tree.txt b/npc/008-1/confused-tree.txt index 202fb53ca..22d415e47 100644 --- a/npc/008-1/confused-tree.txt +++ b/npc/008-1/confused-tree.txt @@ -14,7 +14,7 @@ 008-1,84,63,0 script Confused Tree NPC_CONFUSED_TREE,14,14,{ function tree_panel { - if (is_trusted() == false && #Tree_Trusted == false) + if (!is_staff() && #Tree_Trusted == false) { narrator(l("You see a tree.")); if (getq(HurnscaldQuests_Inspector) == 2) @@ -285,11 +285,11 @@ if (((.@reply$ == .last_reply$ && gettimetick(2) - .last_reply < .repeat_rate) || gettimetick(2) - .last_reply < .talk_rate - || (gettimetick(2) - .blocked < .block_time && is_trusted() == false) + || (gettimetick(2) - .blocked < .block_time && is_staff() == false) || .@pc_map$ != .map$ || distance(.x, .y, .@pc_x, .@pc_y) > .distance || .@reply$ == "") - && is_dev() == false) + && is_gm() == false) { ++.ignored_times; return; @@ -435,7 +435,7 @@ function grab_quote { .@name$ = getarg(0, ""); - if (gettimetick(2) - .last_query < (is_trusted() ? .qpoll_rate : .qpoll_rate2)) + if (gettimetick(2) - .last_query < (is_staff() ? .qpoll_rate : .qpoll_rate2)) { ++.ignored_times; end; @@ -488,7 +488,7 @@ function remove_quote { .@tmp = getarg(0, 0); - if (gettimetick(2) - .last_query < (is_trusted() ? .qpoll_rate : .qpoll_rate2)) + if (gettimetick(2) - .last_query < (is_staff() ? .qpoll_rate : .qpoll_rate2)) { ++.ignored_times; end; @@ -513,7 +513,7 @@ function cite_quote { .@id = getarg(0,0); - if (gettimetick(2) - .last_query < (is_trusted() ? .qpoll_rate : .qpoll_rate2)) + if (gettimetick(2) - .last_query < (is_staff() ? .qpoll_rate : .qpoll_rate2)) { ++.ignored_times; end; @@ -543,7 +543,7 @@ function random_quote { .@name$ = escape_sql(getarg(0, "")); - if (gettimetick(2) - .last_query < (is_trusted() ? .qpoll_rate : .qpoll_rate2)) + if (gettimetick(2) - .last_query < (is_staff() ? .qpoll_rate : .qpoll_rate2)) { ++.ignored_times; end; @@ -716,7 +716,7 @@ OnTalkNearby: .last_activity = gettimetick(2); // for the auto-janitor - if ((is_trusted() || #Tree_Trusted) && charat(.@no_nick$, 0) == .symbol$) + if ((is_staff() || #Tree_Trusted) && charat(.@no_nick$, 0) == .symbol$) { if (.@no_nick$ ~= "^.grab \"?([^#:@\"]{4,23})\"?$") reply(grab_quote($@regexmatch$[1])); diff --git a/npc/commands/debug-look.txt b/npc/commands/debug-look.txt index d2abec492..869616e2f 100644 --- a/npc/commands/debug-look.txt +++ b/npc/commands/debug-look.txt @@ -89,7 +89,7 @@ function script BarberDebug { end; OnCall: - if (!debug && !is_dev()) + if (!debug && !is_staff()) { end; } diff --git a/npc/commands/debug-quest.txt b/npc/commands/debug-quest.txt index 7cc3ff110..9c4254d60 100644 --- a/npc/commands/debug-quest.txt +++ b/npc/commands/debug-quest.txt @@ -61,7 +61,7 @@ function script GlobalQuestDebug { end; OnCall: - if (!debug && !is_trusted()) + if (!is_gm()) { end; } diff --git a/npc/commands/event.txt b/npc/commands/event.txt index 4d98dd002..144d51f0d 100644 --- a/npc/commands/event.txt +++ b/npc/commands/event.txt @@ -77,7 +77,7 @@ function script GlobalEventMenu { end; OnCall: - if (!is_evtc()) + if (!is_gm()) { end; } diff --git a/npc/commands/motd.txt b/npc/commands/motd.txt index d00ed5785..363aa1d6d 100644 --- a/npc/commands/motd.txt +++ b/npc/commands/motd.txt @@ -165,7 +165,7 @@ function script MOTDConfig { end; OnCall: - if (!is_dev()) + if (!is_admin()) { end; } diff --git a/npc/commands/music.txt b/npc/commands/music.txt index 144dc059a..68e4e229f 100644 --- a/npc/commands/music.txt +++ b/npc/commands/music.txt @@ -15,7 +15,7 @@ end; OnCall: - if (!is_evtc()) + if (!is_gm()) { end; } diff --git a/npc/commands/rate-management.txt b/npc/commands/rate-management.txt index 670d45d0c..a9cabd13c 100644 --- a/npc/commands/rate-management.txt +++ b/npc/commands/rate-management.txt @@ -20,7 +20,7 @@ } OnCall: - if (!is_evtc()) + if (!is_gm()) { end; } @@ -139,7 +139,7 @@ OnInit: } OnCall: - if (!is_evtc()) + if (!is_gm()) { end; } diff --git a/npc/commands/scheduled-broadcasts.txt b/npc/commands/scheduled-broadcasts.txt index 4ea5a5a71..ca57f8d2f 100644 --- a/npc/commands/scheduled-broadcasts.txt +++ b/npc/commands/scheduled-broadcasts.txt @@ -205,7 +205,7 @@ OnTimer3600000: end; OnCall: - if (!is_evtc() && !is_dev()) + if (!is_gm()) { end; } diff --git a/npc/commands/super-menu.txt b/npc/commands/super-menu.txt index 875111e38..98de5968d 100644 --- a/npc/commands/super-menu.txt +++ b/npc/commands/super-menu.txt @@ -1,7 +1,7 @@ function script SuperMenu { do { - if (debug && !is_dev()) + if (debug && !is_gm()) { GlobalDebugMenu; return; @@ -15,8 +15,8 @@ function script SuperMenu { next; select l("Scheduled broadcasts"), - l("MOTD"), - rif(is_evtc(), l("Event management")), + rif(is_admin(), l("MOTD")), + rif(is_gm(), l("Event management")), l("Debug"); switch (@menu) @@ -36,7 +36,7 @@ function script SuperMenu { OnCall: - if (!debug && !is_dev()) + if (!debug && !is_gm()) { dispbottom l("You do not have the required access privileges to use the Super Menu."); end; @@ -62,5 +62,5 @@ OnPCLoginEvent: OnInit: bindatcmd "super", "@super::OnCall", 80, 99, 0; - bindatcmd "numa", "@super::OnCall", 80, 99, 0; // alias for those used to TMW's @numa + //bindatcmd "numa", "@super::OnCall", 80, 99, 0; // alias for those used to TMW's @numa - none at the moment, iirc } diff --git a/npc/functions/permissions.txt b/npc/functions/permissions.txt index 62e0da6b7..99094bb43 100644 --- a/npc/functions/permissions.txt +++ b/npc/functions/permissions.txt @@ -1,35 +1,17 @@ -// Evol scripts. +// TMW2 scripts. // Author: -// gumi +// Jesusalva // Description: -// checks player permissions -// ** admins are implicitly everything +// Checks player GM levels -// administrator -function script is_admin { - return has_permission(PERM_USE_ALL_COMMANDS, getarg(0, getcharid(CHAR_ID_ACCOUNT))); -} - -// any staff member -function script is_trusted { - return is_admin(getarg(0, getcharid(CHAR_ID_ACCOUNT))) || - has_permission("show_client_version", getarg(0, getcharid(CHAR_ID_ACCOUNT))); -} - -// developer -function script is_dev { - return is_admin(getarg(0, getcharid(CHAR_ID_ACCOUNT))) || - has_permission(PERM_RECEIVE_REQUESTS, getarg(0, getcharid(CHAR_ID_ACCOUNT))); +function script is_gm { + return (getgmlevel() >= 80); } -// event coordinator -function script is_evtc { - return is_admin(getarg(0, getcharid(CHAR_ID_ACCOUNT))) || - can_use_command("@monster", getarg(0, getcharid(CHAR_ID_ACCOUNT))); +function script is_admin { + return (getgmlevel() >= 99); } -// game master -function script is_gm { - return is_admin(getarg(0, getcharid(CHAR_ID_ACCOUNT))) || - has_permission("send_gm", getarg(0, getcharid(CHAR_ID_ACCOUNT))); +function script is_staff { + return (getgmlevel() >= 5); } diff --git a/npc/scripts.conf b/npc/scripts.conf index ee908344b..ff49c4080 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -2,6 +2,8 @@ // Critical functions "npc/functions/permissions.txt", +"npc/functions/main.txt", +"npc/functions/util.txt", // General-purpose Framework functions "npc/functions/array.txt", @@ -13,7 +15,6 @@ "npc/functions/math.txt", // Misc functions -"npc/functions/main.txt", "npc/functions/asleep.txt", "npc/functions/barber.txt", "npc/functions/bank.txt", @@ -45,7 +46,6 @@ "npc/functions/news.txt", "npc/functions/riddle.txt", "npc/functions/confused-tree-dict.txt", -"npc/functions/util.txt", "npc/functions/soul_menhir.txt", // quest debug |