-
Posts
117 -
Joined
-
Last visited
-
Days Won
17
Reputation Activity
-
-
Sol got a reaction from Zelly in What was the point of you adding features to the 0.9.0?
Great work as always, but just one question. What is the point of making external library modules without releasing an API?
-
Sol got a reaction from Purple in What was the point of you adding features to the 0.9.0?
Great work as always, but just one question. What is the point of making external library modules without releasing an API?
-
Sol got a reaction from alex in What was the point of you adding features to the 0.9.0?
Great work as always, but just one question. What is the point of making external library modules without releasing an API?
-
Sol got a reaction from NoHero in Lua question
'c' argument is something like a class or struct pointer like in 'C'
LUA doesn't have classes but it's something like it, also you can implement prototype of any variable to this kind of structure to keep unique variable name and get access from that self pointer.
Here is the explanation: http://www.lua.org/pil/16.1.html
-
Sol got a reaction from hellreturn in etpro and the silent anticheat?
I thought always that this 'inside' feature is the best side of this anticheat, it makes it more secure and more difficult to understand by crackers. Additionally making something from outside is a way harder than inside, there is several reasons that explain that: compatibility, security, complexity.
-
Sol reacted to gaoesa in etpro and the silent anticheat?
Like solar and Dragonji already pointed out, ETPro sourcecode is not available. But I will add as a representative of the silEnT mod team, that even if ETPro source code would be available, there would be no motivation for the silEnT mod team to add features to it. If we would do anything with it, we would just look for things we could use to improve our mod.
-
Sol got a reaction from FrynoX in SQL stats logger - Enemy Territory LUA
File Name: SQL stats logger
File Submitter: Sol
File Submitted: 02 Feb 2012
File Category: LUA
SQL Stats recorder v0.2.
Setup:
1. add dbstats.lua to lua_modules inside serverconfig.
2. create MySQL account and fill data on dbstats.lua ( DB:Connect("dbname", "dbuser", "dbpassword", "dbhost", 3306) )
3. type !sqlcreate on console or with rcon.
Client: !stats or !ratio commands show client's stats
Client: !listratio command shows all players stats
Client: !top kills or !top deaths commands show current top players.
Client: !resetstats command resets the client's stats in database.
Click here to download this file
-
Sol got a reaction from hellreturn in g_shuffle_staytime or something?
MINIMAL_LEVEL_TOEXECUTE = 20 -- minimal level to execute this command SHUFFLE_COMMAND = "!shuffle" -- shuffle command SHUFFLE_AFTERTIME = 5*60 -- 5min Client = { } function et_InitGame( levelTime, randomSeed, restart ) maxclients = et.trap_Cvar_Get( "sv_maxclients" ) end function et_ClientCommand( num, cmd ) local arg0 = string.lower(cmd) local arg1 = string.lower(et.trap_Argv(1)) if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then StartTime = os.time() for i = 0, maxclients - 1 do local team = et.gentity_get(i, "sess.sessionTeam") if team ~= 3 then Client[i] = team end end return true -- let execute it end if arg0 == "team" and StartTime ~= nil then if arg1 == "b" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then return false end elseif arg1 == "r" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then return false end end end end It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too
-
Sol got a reaction from Jhonny/Shinobi in g_shuffle_staytime or something?
MINIMAL_LEVEL_TOEXECUTE = 20 -- minimal level to execute this command SHUFFLE_COMMAND = "!shuffle" -- shuffle command SHUFFLE_AFTERTIME = 5*60 -- 5min Client = { } function et_InitGame( levelTime, randomSeed, restart ) maxclients = et.trap_Cvar_Get( "sv_maxclients" ) end function et_ClientCommand( num, cmd ) local arg0 = string.lower(cmd) local arg1 = string.lower(et.trap_Argv(1)) if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then StartTime = os.time() for i = 0, maxclients - 1 do local team = et.gentity_get(i, "sess.sessionTeam") if team ~= 3 then Client[i] = team end end return true -- let execute it end if arg0 == "team" and StartTime ~= nil then if arg1 == "b" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then return false end elseif arg1 == "r" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then return false end end end end It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too
-
Sol got a reaction from Chuckun in g_shuffle_staytime or something?
MINIMAL_LEVEL_TOEXECUTE = 20 -- minimal level to execute this command SHUFFLE_COMMAND = "!shuffle" -- shuffle command SHUFFLE_AFTERTIME = 5*60 -- 5min Client = { } function et_InitGame( levelTime, randomSeed, restart ) maxclients = et.trap_Cvar_Get( "sv_maxclients" ) end function et_ClientCommand( num, cmd ) local arg0 = string.lower(cmd) local arg1 = string.lower(et.trap_Argv(1)) if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then StartTime = os.time() for i = 0, maxclients - 1 do local team = et.gentity_get(i, "sess.sessionTeam") if team ~= 3 then Client[i] = team end end return true -- let execute it end if arg0 == "team" and StartTime ~= nil then if arg1 == "b" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then return false end elseif arg1 == "r" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then return false end end end end It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too
-
Sol got a reaction from gaoesa in g_shuffle_staytime or something?
MINIMAL_LEVEL_TOEXECUTE = 20 -- minimal level to execute this command SHUFFLE_COMMAND = "!shuffle" -- shuffle command SHUFFLE_AFTERTIME = 5*60 -- 5min Client = { } function et_InitGame( levelTime, randomSeed, restart ) maxclients = et.trap_Cvar_Get( "sv_maxclients" ) end function et_ClientCommand( num, cmd ) local arg0 = string.lower(cmd) local arg1 = string.lower(et.trap_Argv(1)) if et.G_shrubbot_level( num ) >= MINIMAL_LEVEL_TOEXECUTE and arg0 == SHUFFLE_COMMAND or arg1 == SHUFFLE_COMMAND then StartTime = os.time() for i = 0, maxclients - 1 do local team = et.gentity_get(i, "sess.sessionTeam") if team ~= 3 then Client[i] = team end end return true -- let execute it end if arg0 == "team" and StartTime ~= nil then if arg1 == "b" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 1 then return false end elseif arg1 == "r" then if os.time() >= (StartTime + SHUFFLE_AFTERTIME) and Client[num] == 2 then return false end end end end It is just concept but it should works, in this case they won't be able to change to ->spec-> another team too
-
Sol reacted to Dragonji in EA titles on Humble Bundle
"Pay what you want for epic games on Origin. Support charity."
https://www.humblebundle.com/
8 triumphant games. Pay what you want and get the terrifying sci-fi horror third person shooter Dead Space 3; the original bone-chilling horror shooter Dead Space; the intense action-packed supersoldier shooter Crysis 2 Maximum Edition; the high speed open-world crash happy racer Burnout Paradise: The Ultimate Box; the authentic modern warfare sim Medal of Honor; and the first person parkour thrill ride Mirror's Edge. Pay over the average and receive the beloved life sim The Sims 3 (along with two expansion packs in The Sims 3 Starter Pack) and the unrivaled military shooter Battlefield 3.
Fire it up on Origin. Buying the Humble Origin Bundle gets you the games to play on Windows through Origin (system requirements here), with The Sims 3 also available on Mac! Electronic Arts has also provided Steam keys for some of the games (full list here)!
Pay what you want. On their own, all these mind-blowing titles would cost about $215, but we're letting you name your price! Pay any price to get soundtracks for The Sims 3 and Battlefield 3. A purchase of $1 or more gets you Origin* keys for all the games, and you can also get Steam keys for Dead Space, Crysis 2 Maximum Edition, Burnout Paradise: The Ultimate Box, Medal of Honor, and Mirror's Edge! Beat the average to also get The Sims 3, two expansion packs in The Sims 3 Starter Pack, and Battlefield 3.
This offer ends on 28.08.2013 (if I am correct )
-
Sol got a reaction from hellreturn in invalid guid bug
Yes, I fixed it but it's test fix, forgot to update changelog but soon will be big changes
-
Sol got a reaction from hellreturn in g_crazygravity
It can't be as far as I know.
here you are the script, I'm not quite sure about et_InitGame and restart eq 1 if it is a call before or after map_restart.
maps = { "adlernest", "fueldump", "goldrush" } -- add map here command = "!crazygravity" -- command here function et_InitGame( levelTime, randomSeed, restart ) if restart == 1 then -- not quite sure local i = 1 while maps[i] ~= nil do if tostring(et.trap_Cvar_Get("mapname")) == maps[i] then et.trap_SendConsoleCommand(et.EXEC_APPEND, string.format("%s\n", command)) break end i = i + 1 end end end -
Sol got a reaction from jaszpol in ETEng release 0.3
New version of ETEng 0.3 is released.
(4e530ad65164f40a584c30cc4bea76a2)
(c08a3c14a92cc922955dd1c17e5375c9) md5sum
Added: sv_protocolcheck {0,1}: 0-Server doesn't check clients protocols, 1-Server allows only one protocol of sv_protocol.
Added: sv_protocol {82,84}: 82- 2.55 Protocol, 84 - 2.6b Protocol, This is shown in getinfo.
Added: sv_protect {0,1}: 0-Server doesn't check clients userinfo. 1-Server check clients for fake clients (q3fill exploit).
Added: sv_maxreqs {n}: N-getstatus Request per sv_reqtime.
Added: sv_reqtime {ms}: ms: ( default 1000 = 1s ) Time per sv_maxreqs request.
Added: sv_maxclientsip {n}: Maximum number of connections allowed from one particular IP.
Added: sv_rconfilter {0,1}: 0-Server doesn't check the client IP when using rcon. 1-Server filters the source rcon cmds.
Added: sv_rcon1 - sv_rcon5 {IP}: Works if sv_rconfilter is enabled. Example: sv_rcon1 "83.0.0.1" IP Mask is also supported Ex: sv_rcon1 "83.0.0.*"
Added: Win32 Support
Fixed: wwwdl, getstatus exploit.
Fixed: Invalid .PK3 files referenced error.
ETENG 0.3 Download
-
Sol got a reaction from hellreturn in invalid guid bug
This will be fixed in new version of ET 3.00. ( 0.6.5 version ).
-
Sol got a reaction from hellreturn in !country command
This will only work if the uci numbers = Countries table
-- Author Sol countries = { [0]= "Unknown", [1]= "Asia/Pacific Region", [2]= "Europe", [3]= "Andorra", [4]= "United Arab Emirates", [5]= "Afghanistan", [6]= "Antigua and Barbuda", [7]= "Anguilla", [8]= "Albania", [9]= "Armenia", [10]= "Netherlands Antilles", [11]= "Angola", [12]= "Antarctica", [13]= "Argentina", [14]= "American Samoa", [15]= "Austria", [16]= "Australia", [17]= "Aruba", [18]= "Azerbaijan", [19]= "Bosnia and Herzegovina", [20]= "Barbados", [21]= "Bangladesh", [22]= "Belgium", [23]= "Burkina Faso", [24]= "Bulgaria", [25]= "Bahrain", [26]= "Burundi", [27]= "Benin", [28]= "Bermuda", [29]= "Brunei Darussalam", [30]= "Bolivia", [31]= "Brazil", [32]= "Bahamas", [33]= "Bhutan", [34]= "Bouvet Island", [35]= "Botswana", [36]= "Belarus", [37]= "Belize", [38]= "Canada", [39]= "Cocos (Keeling) Islands", [40]= "Congo-Kinshasa", [41]= "Central African Republic", [42]= "Congo-Brazzaville", [43]= "Switzerland", [44]= "Cote D'Ivoire", [45]= "Cook Islands", [46]= "Chile", [47]= "Cameroon", [48]= "China", [49]= "Colombia", [50]= "Costa Rica", [51]= "Cuba", [52]= "Cape Verde", [53]= "Christmas Island", [54]= "Cyprus", [55]= "Czech Republic", [56]= "Germany", [57]= "Djibouti", [58]= "Denmark", [59]= "Dominica", [60]= "Dominican Republic", [61]= "Algeria", [62]= "Ecuador", [63]= "Estonia", [64]= "Egypt", [65]= "Western Sahara", [66]= "Eritrea", [67]= "Spain", [68]= "Ethiopia", [69]= "Finland", [70]= "Fiji", [71]= "Falkland Islands (Malvinas)", [72]= "Micronesia", [73]= "Faroe Islands", [74]= "France", [75]= "France, Metropolitan", [76]= "Gabon", [77]= "United Kingdom", [78]= "Grenada", [79]= "Georgia", [80]= "French Guiana", [81]= "Ghana", [82]= "Gibraltar", [83]= "Greenland", [84]= "Gambia", [85]= "Guinea", [86]= "Guadeloupe", [87]= "Equatorial Guinea", [88]= "Greece", [89]= "South Georgia and the South Sandwich Islands", [90]= "Guatemala", [91]= "Guam", [92]= "Guinea-Bissau", [93]= "Guyana", [94]= "Hong Kong", [95]= "Heard Island and McDonald Islands", [96]= "Honduras", [97]= "Croatia", [98]= "Haiti", [99]= "Hungary", [100]= "Indonesia", [101]= "Ireland", [102]= "Israel", [103]= "India", [104]= "British Indian Ocean Territory", [105]= "Iraq", [106]= "Iran", [107]= "Iceland", [108]= "Italy", [109]= "Jamaica", [110]= "Jordan", [111]= "Japan", [112]= "Kenya", [113]= "Kyrgyzstan", [114]= "Cambodia", [115]= "Kiribati", [116]= "Comoros", [117]= "Saint Kitts and Nevis", [118]= "North Korea", [119]= "South Korea", [120]= "Kuwait", [121]= "Cayman Islands", [122]= "Kazakhstan", [123]= "Laos", [124]= "Lebanon", [125]= "Saint Lucia", [126]= "Liechtenstein", [127]= "Sri Lanka", [128]= "Liberia", [129]= "Lesotho", [130]= "Lithuania", [131]= "Luxembourg", [132]= "Latvia", [133]= "Libya", [134]= "Morocco", [135]= "Monaco", [136]= "Moldova", [137]= "Madagascar", [138]= "Marshall Islands", [139]= "Macedonia", [140]= "Mali", [141]= "Burma", [142]= "Mongolia", [143]= "Macau", [144]= "Northern Mariana Islands", [145]= "Martinique", [146]= "Mauritania", [147]= "Montserrat", [148]= "Malta", [149]= "Mauritius", [150]= "Maldives", [151]= "Malawi", [152]= "Mexico", [153]= "Malaysia", [154]= "Mozambique", [155]= "Namibia", [156]= "New Caledonia", [157]= "Niger", [158]= "Norfolk Island", [159]= "Nigeria", [160]= "Nicaragua", [161]= "Netherlands", [162]= "Norway", [163]= "Nepal", [164]= "Nauru", [165]= "Niue", [166]= "New Zealand", [167]= "Oman", [168]= "Panama", [169]= "Peru", [170]= "French Polynesia", [171]= "Papua New Guinea", [172]= "Philippines", [173]= "Pakistan", [174]= "Poland", [175]= "Saint Pierre and Miquelon", [176]= "Pitcairn Islands", [177]= "Puerto Rico", [178]= "Palestinian Territory", [179]= "Portugal", [180]= "Palau", [181]= "Paraguay", [182]= "Qatar", [183]= "Reunion", [184]= "Romania", [185]= "Russian Federation", [186]= "Rwanda", [187]= "Saudi Arabia", [188]= "Solomon Islands", [189]= "Seychelles", [190]= "Sudan", [191]= "Sweden", [192]= "Singapore", [193]= "Saint Helena", [194]= "Slovenia", [195]= "Svalbard and Jan Mayen", [196]= "Slovakia", [197]= "Sierra Leone", [198]= "San Marino", [199]= "Senegal", [200]= "Somalia", [201]= "Suriname", [202]= "Sao Tome and Principe", [203]= "El Salvador", [204]= "Syria", [205]= "Swaziland", [206]= "Turks and Caicos Islands", [207]= "Chad", [208]= "French Southern Territories", [209]= "Togo", [210]= "Thailand", [211]= "Tajikistan", [212]= "Tokelau", [213]= "Turkmenistan", [214]= "Tunisia", [215]= "Tonga", [216]= "Timor-Leste", [217]= "Turkey", [218]= "Trinidad and Tobago", [219]= "Tuvalu", [220]= "Taiwan", [221]= "Tanzania", [222]= "Ukraine", [223]= "Uganda", [224]= "United States Minor Outlying Islands", [225]= "United States", [226]= "Uruguay", [227]= "Uzbekistan", [228]= "Holy See (Vatican City State)", [229]= "Saint Vincent and the Grenadines", [230]= "Venezuela", [231]= "Virgin Islands, British", [232]= "Virgin Islands, U.S.", [233]= "Vietnam", [234]= "Vanuatu", [235]= "Wallis and Futuna", [236]= "Samoa", [237]= "Yemen", [238]= "Mayotte", [239]= "Serbia", [240]= "South Africa", [241]= "Zambia", [242]= "Montenegro", [243]= "Zimbabwe", [244]= "Anonymous Proxy", [245]= "Satellite Provider", [246]= "Other", [247]= "Aland Islands", [248]= "Guernsey", [249]= "Isle of Man", [250]= "Jersey", [251]= "Saint Barthelemy", [252]= "Saint Martin", [255]= "Localhost", } function et_ClientCommand( num, cmd ) if cmd ~= "say" then return end if et.trap_Argv(1) == "!country" then local target = tonumber(et.trap_Argv(2)) local uci = et.Info_ValueForKey(et.trap_GetConfigstring( et.CS_PLAYERS + target ), "uci") et.trap_SendServerCommand( num, string.format("c %s ^wis from %s", et.gentity_get(target, "pers.netname"), countries[uci]) ) end end
-
Sol got a reaction from hellreturn in chat
Here you are, this is my simple script which I use it on my server.
logname = "chatlog.log" function et_ClientCommand( num, cmd ) if cmd == "say" or cmd == "say_team" or cmd == "say_buddy" then if et.trap_Argc() > 1 then local msg = "" local name = et.Q_CleanStr(et.gentity_get(num, "pers.netname")) for i = 1, et.trap_Argc() - 1 do msg = string.format("%s %s", msg, et.Q_CleanStr(et.trap_Argv( i ))) end WriteToFile(logname, string.format("[%s]-[%s]: %s\n", os.date(), name, msg )) else local name = et.Q_CleanStr(et.gentity_get(num, "pers.netname")) local msg = string.format("[%s]-[%s]: %s\n", os.date(), name, et.Q_CleanStr(et.trap_Argv(1))) WriteToFile(logname, msg) end end end function WriteToFile( filename, str ) fd, len = et.trap_FS_FOpenFile( filename, et.FS_APPEND ) et.trap_FS_Write( str, string.len(str), fd ) et.trap_FS_FCloseFile( fd ) end
-
Sol got a reaction from BettyBoop in chat
Here you are, this is my simple script which I use it on my server.
logname = "chatlog.log" function et_ClientCommand( num, cmd ) if cmd == "say" or cmd == "say_team" or cmd == "say_buddy" then if et.trap_Argc() > 1 then local msg = "" local name = et.Q_CleanStr(et.gentity_get(num, "pers.netname")) for i = 1, et.trap_Argc() - 1 do msg = string.format("%s %s", msg, et.Q_CleanStr(et.trap_Argv( i ))) end WriteToFile(logname, string.format("[%s]-[%s]: %s\n", os.date(), name, msg )) else local name = et.Q_CleanStr(et.gentity_get(num, "pers.netname")) local msg = string.format("[%s]-[%s]: %s\n", os.date(), name, et.Q_CleanStr(et.trap_Argv(1))) WriteToFile(logname, msg) end end end function WriteToFile( filename, str ) fd, len = et.trap_FS_FOpenFile( filename, et.FS_APPEND ) et.trap_FS_Write( str, string.len(str), fd ) et.trap_FS_FCloseFile( fd ) end
-
-
Sol got a reaction from hellreturn in ETEng release 0.3
New version of ETEng 0.3 is released.
(4e530ad65164f40a584c30cc4bea76a2)
(c08a3c14a92cc922955dd1c17e5375c9) md5sum
Added: sv_protocolcheck {0,1}: 0-Server doesn't check clients protocols, 1-Server allows only one protocol of sv_protocol.
Added: sv_protocol {82,84}: 82- 2.55 Protocol, 84 - 2.6b Protocol, This is shown in getinfo.
Added: sv_protect {0,1}: 0-Server doesn't check clients userinfo. 1-Server check clients for fake clients (q3fill exploit).
Added: sv_maxreqs {n}: N-getstatus Request per sv_reqtime.
Added: sv_reqtime {ms}: ms: ( default 1000 = 1s ) Time per sv_maxreqs request.
Added: sv_maxclientsip {n}: Maximum number of connections allowed from one particular IP.
Added: sv_rconfilter {0,1}: 0-Server doesn't check the client IP when using rcon. 1-Server filters the source rcon cmds.
Added: sv_rcon1 - sv_rcon5 {IP}: Works if sv_rconfilter is enabled. Example: sv_rcon1 "83.0.0.1" IP Mask is also supported Ex: sv_rcon1 "83.0.0.*"
Added: Win32 Support
Fixed: wwwdl, getstatus exploit.
Fixed: Invalid .PK3 files referenced error.
ETENG 0.3 Download
-
Sol got a reaction from Blad3 in ETEng release 0.3
New version of ETEng 0.3 is released.
(4e530ad65164f40a584c30cc4bea76a2)
(c08a3c14a92cc922955dd1c17e5375c9) md5sum
Added: sv_protocolcheck {0,1}: 0-Server doesn't check clients protocols, 1-Server allows only one protocol of sv_protocol.
Added: sv_protocol {82,84}: 82- 2.55 Protocol, 84 - 2.6b Protocol, This is shown in getinfo.
Added: sv_protect {0,1}: 0-Server doesn't check clients userinfo. 1-Server check clients for fake clients (q3fill exploit).
Added: sv_maxreqs {n}: N-getstatus Request per sv_reqtime.
Added: sv_reqtime {ms}: ms: ( default 1000 = 1s ) Time per sv_maxreqs request.
Added: sv_maxclientsip {n}: Maximum number of connections allowed from one particular IP.
Added: sv_rconfilter {0,1}: 0-Server doesn't check the client IP when using rcon. 1-Server filters the source rcon cmds.
Added: sv_rcon1 - sv_rcon5 {IP}: Works if sv_rconfilter is enabled. Example: sv_rcon1 "83.0.0.1" IP Mask is also supported Ex: sv_rcon1 "83.0.0.*"
Added: Win32 Support
Fixed: wwwdl, getstatus exploit.
Fixed: Invalid .PK3 files referenced error.
ETENG 0.3 Download
-
Sol got a reaction from gaoesa in server.log auto-cleanup feature
For Example:
-- Sol (www.polish-frags.pl) logname = "serverlog.log" data = "12:00:00" - rm log every day at 12:00 function et_RunFrame( levelTime ) if string.find(os.date(), data) ~= nil then if et.HOSTARCH == "UNIX" then os.execute(string.format("rm %s/%s/%s",tostring(et.trap_Cvar_Get("fs_homepath")),tostring(et.trap_Cvar_Get("fs_game")),logname)) elseif et.HOSTARCH == "WIN32" then os.execute(string.format("DEL %s/%s/%s",tostring(et.trap_Cvar_Get("fs_homepath")),tostring(et.trap_Cvar_Get("fs_game")),logname)) end end end
-
Sol got a reaction from hellreturn in Admin Check - Enemy Territory LUA
File Name: Admin Check
File Submitter: sol
File Submitted: 06 Dec 2011
File Category: LUA
www.sol-solutions.pl
Admin Check LUA Script.
Version: 1.0
MinAdmLevel = 20 -- Min Adminlevel to show admin on list
AdmLeveltocmd = 0 -- Min Adminlevel to run this command
Maxchars = 10 -- name len (max chars)
Click here to download this file