summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/001-1/bgmaster.txt10
-rw-r--r--npc/001-1/eventmaster.txt8
-rw-r--r--npc/001-1/portal.txt8
-rw-r--r--npc/002-4/elmo.txt2
-rw-r--r--npc/003-1-3/thief.txt4
-rw-r--r--npc/003-1/cyndala.txt5
-rw-r--r--npc/003-1/luca.txt4
-rw-r--r--npc/003-1/michel.txt35
-rw-r--r--npc/003-1/tamiloc.txt2
-rw-r--r--npc/003-13/arnea.txt8
-rw-r--r--npc/003-2/lua.txt6
-rw-r--r--npc/003-5/arnea.txt9
-rw-r--r--npc/005-1/vincent.txt1
-rw-r--r--npc/005-7/trainer.txt2
-rw-r--r--npc/008-1/confused-tree.txt16
-rw-r--r--npc/commands/debug-look.txt2
-rw-r--r--npc/commands/debug-quest.txt2
-rw-r--r--npc/commands/event.txt2
-rw-r--r--npc/commands/motd.txt2
-rw-r--r--npc/commands/music.txt2
-rw-r--r--npc/commands/rate-management.txt4
-rw-r--r--npc/commands/scheduled-broadcasts.txt2
-rw-r--r--npc/commands/super-menu.txt10
-rw-r--r--npc/functions/permissions.txt36
-rw-r--r--npc/scripts.conf4
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