1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
|
/*
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/logs.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
*/
groups: (
{
id: 0 /* group 0 is the default group for every new account */
name: "Player"
level: 0
inherit: ( /*empty list*/ )
commands: {
help: true
commands: true
request: true
duel: true
accept: true
reject: true
leave: true
whogm: true
email: true
rates: true
}
permissions: {
/* without this basic permissions regular players could not
trade or party */
can_trade: true
can_party: true
}
},
{
id: 1
name: "Super Player"
inherit: ( "Player" ) /* sponsors can do everything Players can and more */
level: 1
commands: {
pettalk: true
refresh: true
}
log_commands: false
permissions: {
}
},
/* “Support” is a baseclass with the basic commands every DEV/GM/ADM may have. */
{
id: 2
name: "Support"
inherit: ( "Super Player" )
level: 3
commands: {
hugo: true
linus: true
charcommands: 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
noask: true
noks: true
autoloot: true
alootid: true
autoloottype: true
autotrade: true
go: true
breakguild: true
channel: true
version: true
where: [true, true]
jumpto: true
who: true
who2: true
who3: true
whomap: true
whomap2: true
whomap3: true
users: true
mapinfo: true
gat: true
mobsearch: true
idsearch: true
showmobs: true
skillid: true
skilltree: true
monsterignore: true
broadcast: true
localbroadcast: true
}
log_commands: true
permissions: {
show_client_version: true
receive_requests: true
view_equipment: true
}
},
/* Developer class is only used on TEST SERVER */
{
id: 5
name: "Developer"
inherit: ( "Support" )
level: 5
commands: {
tonpc: true
hidenpc: true
shownpc: true
loadnpc: true
unloadnpc: true
npcmove: true
addwarp: true
save: [true, true]
hide: true
follow: true
warp: true
jump: true
memo: true
load: true
recall: true
slide: [true, true]
sound: true
}
log_commands: true
permissions: {
}
},
{
id: 8
name: "Herc Game Master"
inherit: ( "Support" ) /* Herc Game Master is not used in TMW2 and may be removed later */
level: 6
commands: {
kick: true
jailfor: true
hide: true
follow: true
warp: true
jump: true
memo: true
load: true
recall: true
monster: true
monstersmall: true
monsterbig: true
killmonster2: true
cleanarea: true
cleanmap: true
delitem: [true, true]
produce: [true, true]
refine: [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
refresh: [true, true]
refreshall: true
fakename: true
kill: true
nuke: [true, true]
doommap: true
heal: [true, true]
alive: [true, true]
sound: true
storage: true
clone: [true, true]
slaveclone: [true, true]
evilclone: [true, true]
repairall: [true, true]
storeall: true
itemreset: true
clearstorage: true
cleargstorage: true
jump: [true, true]
killer: true
killable: true
monsterignore: [true, true]
npctalk: true
mute: true
mutearea: true
unmute: true
speed: [true, true]
heal: [true, true]
alive: [true, true]
ban: true
block: true
jail: true
mute: true
unmute: true
storagelist: [true, true]
cartlist: [true, true]
itemlist: [true, true]
stats: [true, true]
fakename: true
recallall: true
raisemap: [true, true]
raise: [true, true]
dropall: true
}
log_commands: true
permissions: {
who_display_aid: true
view_hpmeter: true
any_warp: true
join_chat: true
kick_chat: true
hide_session: true
hack_info: true
send_gm: true
}
},
{
id: 60
name: "Officer"
level: 60
inherit: ( "Support" )
commands: {
storagelist: [true, true]
cartlist: [true, true]
itemlist: [true, true]
stats: [true, true]
recall: true
raisemap: [true, true]
kick: true
jailfor: true
unjail: true
unban: true
monster: true
monstersmall: true
monsterbig: true
killmonster2: true
cleanarea: true
cleanmap: true
heal: [true, true]
alive: [true, true]
sound: true
storage: true
clone: [true, true]
slaveclone: [true, true]
evilclone: [true, true]
jump: [true, true]
npctalk: true
mute: true
unmute: true
speed: true
}
log_commands: true
permissions: {
who_display_aid: true
view_hpmeter: true
any_warp: true
all_equipment: true
join_chat: true
kick_chat: true
hide_session: true
hack_info: true
send_gm: true
can_trade_bound: false
}
},
{
id: 80
name: "Game Master"
level: 80
inherit: ( "Player", "Herc Game Master", "Developer" )
commands: {
raisemap: [true, true]
raise: [true, true]
unjail: true
unban: true
}
log_commands: true
permissions: {
can_trade_bound: false
can_party: true
all_skill: false
all_equipment: true
skill_unconditional: false
use_check: true
use_changemaptype: true
}
},
{
id: 99
name: "Administrator"
level: 99
inherit: ( "Developer", "Herc Game Master" )
commands: {
/* not necessary due to all_commands: true */
accinfo: false
}
log_commands: true
permissions: {
can_trade_bound: false
can_party: true
all_skill: false
all_equipment: true
skill_unconditional: false
use_check: true
use_changemaptype: true
all_commands: true
hchsys_admin: true
}
}
)
|