303 lines
6.1 KiB
Plaintext
303 lines
6.1 KiB
Plaintext
/*
|
|
|
|
Player groups configuration file
|
|
---------------------------------
|
|
|
|
This file defines "player groups" and their privileges.
|
|
|
|
Each group has its id and name, lists of available commands and other
|
|
permissions, and a list of other groups it inherits from.
|
|
|
|
|
|
Group settings
|
|
--------------
|
|
<id>
|
|
Unique group number. The only required field.
|
|
|
|
<name>
|
|
Any string. If empty, defaults to "Group <id>". It is used in several @who
|
|
commands.
|
|
|
|
<level>
|
|
Equivalent of GM level, which was used in revisions before r15572. You can
|
|
set it to any number, but usually it's between 0 (default) and 99. Members of
|
|
groups with lower level can not perform some actions/commands (like @kick) on
|
|
members of groups with higher level. It is what script command getgmlevel()
|
|
returns. Group level can also be used to override trade restrictions
|
|
(db/item_trade.txt).
|
|
|
|
<commands>
|
|
A group of settings
|
|
<command name> : <bool>
|
|
or
|
|
<commandname> : [ <bool>, <bool> ]
|
|
First boolean value is for atcommand, second one for charcommand. If set to
|
|
true, group can use command. If only atcommand value is provided, false is
|
|
assumed for charcommand. If a command name is not included, false is assumed for
|
|
both atcommand and charcommand.
|
|
For a full list of available commands, see: doc/atcommands.txt.
|
|
Command names must not be aliases.
|
|
|
|
<log_commands>
|
|
Boolean value. If true then all commands used by the group will be logged to
|
|
atcommandlog. If setting is omitted in a group definition, false is assumed.
|
|
Requires 'log_commands' to be enabled in 'conf/log_athena.conf'.
|
|
|
|
<permissions>
|
|
A group of settings
|
|
<permission> : <bool>
|
|
If a permission is not included, false is assumed.
|
|
For a full list of available permissions, see: doc/permissions.txt
|
|
|
|
<inherit>
|
|
A list of group names that given group will inherit commands and permissions
|
|
from. Group names are case-sensitive.
|
|
|
|
Inheritance results
|
|
-------------------
|
|
Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and
|
|
recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed.
|
|
|
|
Inheritance rules should not create cycles (eg Group 1 inherits from Group 2,
|
|
and Group inherits from Group 1 at the same time). Configuration with cycles is
|
|
considered faulty and can't be processed fully by server.
|
|
|
|
Command or permission is inherited ONLY if it's not already defined for the
|
|
group.
|
|
If group inherits from multiple groups, and the same command or permission is
|
|
defined for more than one of these groups, it's undefined which one will be
|
|
inherited.
|
|
|
|
Syntax
|
|
------
|
|
This config file uses libconfig syntax:
|
|
http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
|
|
|
|
|
|
Upgrading from revisions before r15572
|
|
-------------------------------------
|
|
http://rathena.org/board/index.php?showtopic=58877
|
|
*/
|
|
|
|
groups: (
|
|
{
|
|
id: 0 /* group 0 is the default group for every new account */
|
|
name: "Player"
|
|
level: 0
|
|
inherit: ( /*empty list*/ )
|
|
commands: {
|
|
changedress: true
|
|
}
|
|
permissions: {
|
|
/* without this basic permissions regular players could not
|
|
trade or party */
|
|
can_trade: true
|
|
can_party: true
|
|
attendance: true
|
|
}
|
|
},
|
|
{
|
|
id: 1
|
|
name: "Super Player"
|
|
inherit: ( "Player" ) /* can do everything Players can and more */
|
|
level: 0
|
|
commands: {
|
|
/* informational commands */
|
|
commands: true
|
|
charcommands: true
|
|
help: true
|
|
rates: true
|
|
uptime: true
|
|
showdelay: true
|
|
exp: true
|
|
mobinfo: true
|
|
iteminfo: true
|
|
whodrops: true
|
|
time: true
|
|
jailtime: true
|
|
hominfo: true
|
|
homstats: true
|
|
showexp: true
|
|
showzeny: true
|
|
whereis: true
|
|
/* feature commands */
|
|
refresh: true
|
|
noask: true
|
|
noks: true
|
|
autoloot: true
|
|
alootid: true
|
|
autoloottype: true
|
|
autotrade: true
|
|
request: true
|
|
go: true
|
|
breakguild: true
|
|
channel: true
|
|
langtype: true
|
|
}
|
|
permissions: {
|
|
attendance: false
|
|
}
|
|
},
|
|
{
|
|
id: 2
|
|
name: "Support"
|
|
inherit: ( "Super Player" )
|
|
level: 1
|
|
commands: {
|
|
version: true
|
|
where: true
|
|
jumpto: true
|
|
who: true
|
|
who2: true
|
|
who3: true
|
|
whomap: true
|
|
whomap2: true
|
|
whomap3: true
|
|
users: true
|
|
broadcast: true
|
|
localbroadcast: true
|
|
}
|
|
log_commands: true
|
|
permissions: {
|
|
receive_requests: true
|
|
view_equipment: true
|
|
}
|
|
},
|
|
{
|
|
id: 3
|
|
name: "Script Manager"
|
|
inherit: ( "Support" )
|
|
level: 1
|
|
commands: {
|
|
tonpc: true
|
|
hidenpc: true
|
|
shownpc: true
|
|
loadnpc: true
|
|
unloadnpc: true
|
|
npcmove: true
|
|
addwarp: true
|
|
}
|
|
log_commands: true
|
|
permissions: {
|
|
any_warp: true
|
|
}
|
|
},
|
|
{
|
|
id: 4
|
|
name: "Event Manager"
|
|
inherit: ( "Support" )
|
|
level: 1
|
|
commands: {
|
|
monster: true
|
|
monstersmall: true
|
|
monsterbig: true
|
|
killmonster2: true
|
|
cleanarea: true
|
|
cleanmap: true
|
|
item: [true, true]
|
|
zeny: [true, true]
|
|
disguise: [true, true]
|
|
undisguise: [true, true]
|
|
size: [true, true]
|
|
raise: true
|
|
raisemap: true
|
|
day: true
|
|
night: true
|
|
skillon: true
|
|
skilloff: true
|
|
pvpon: true
|
|
pvpoff: true
|
|
gvgon: true
|
|
gvgoff: true
|
|
allowks: true
|
|
me: true
|
|
marry: true
|
|
divorce: true
|
|
refreshall: true
|
|
}
|
|
log_commands: true
|
|
permissions: {
|
|
can_trade: false
|
|
any_warp: true
|
|
}
|
|
},
|
|
{
|
|
id: 5
|
|
name: "VIP"
|
|
inherit: ( "Player" ) /* can do everything Players can */
|
|
level: 0
|
|
commands: {
|
|
rates: true
|
|
who: true
|
|
}
|
|
permissions: {
|
|
/* no permissions by default */
|
|
}
|
|
},
|
|
{
|
|
id: 10
|
|
name: "Law Enforcement"
|
|
inherit: ( "Support" )
|
|
level: 2
|
|
commands: {
|
|
hide: true
|
|
follow: true
|
|
kick: true
|
|
disguise: true
|
|
fakename: true
|
|
option: true
|
|
speed: true
|
|
warp: true
|
|
kill: true
|
|
recall: true
|
|
ban: true
|
|
block: true
|
|
jail: true
|
|
jailfor: true
|
|
mute: true
|
|
storagelist: true
|
|
cartlist: true
|
|
itemlist: true
|
|
stats: true
|
|
}
|
|
log_commands: true
|
|
permissions: {
|
|
join_chat: true
|
|
kick_chat: true
|
|
hide_session: true
|
|
who_display_aid: true
|
|
hack_info: true
|
|
any_warp: true
|
|
view_hpmeter: true
|
|
}
|
|
},
|
|
{
|
|
id: 99
|
|
name: "Admin"
|
|
level: 99
|
|
inherit: ( "Support", "Law Enforcement" )
|
|
commands: {
|
|
/* not necessary due to all_commands: true */
|
|
}
|
|
log_commands: true
|
|
permissions: {
|
|
can_trade: true
|
|
can_party: true
|
|
command_enable: true
|
|
all_skill: false
|
|
all_equipment: false
|
|
skill_unconditional: false
|
|
use_check: true
|
|
use_changemaptype: true
|
|
all_commands: true
|
|
channel_admin: true
|
|
can_trade_bounded: true
|
|
item_unconditional: false
|
|
bypass_stat_onclone: true
|
|
bypass_max_stat: true
|
|
/* all_permission: true */
|
|
}
|
|
}
|
|
)
|
|
|