- Thanks to dear me for supporting myself these 2 years of DGAdmin development.
- Thanks to Musta for bugreports and testing.
- Thanks to Smurf, who patched Tekno specially for DGAdmin.
- Last of all, thanks to Lambder for being a faggot. Keep it up!
UPDATE INTRODUCTION
This is a major update.
Lots of new features were realized. Lots of bugs and crashes were fixed.
Reached 10'000 lines of the source code!
I'll continue the development, if DGAdmin will stay popular.
Don't be lazy to read the official documentation for advanced guidelines.
If you're found any bugs, or if you got any suggestions, don't be lazy to post them on GitHub Repo.
New Features
Dynamic Properties
setting: settings_dynamic_properties
It' s possible to override any DGAdmin setting through DSR.
Example usecase:
You wish to use same server as iSnipe and Reg Guns.
First, enable the feature:
settings_dynamic_properties=true
and disable iSnipe mode
settings_isnipe=false
Now, open your players2/isnipe.dsr, and add following line to beginning of the file:
//#DGAdmin settings settings_isnipe = true
So, iSnipe mode will be enabled only for isnipe DSR, and disabled for any other.
Possible syntaxes:
Code: Select all
//#DGAdmin settings <setting> = <value>
Where <setting> Is any setting from settings.txt
//#DGAdmin rules "<rules>"
Override Commands/rules.txt. Newlines separated by \n
//#DGAdmin cdvar <dvar name> = <value>
Add / Override dvars from Utils/cdvars.txt
//#DGAdmin servertitle map = <map title>
Map title in the server list. Supported <map> placeholder. Max length is 28 characters.
//#DGAdmin servertitle mode = <mode title>
Mode title in the server list. Max length is 15 characters.
Examples:
//#DGAdmin settings settings_unlimited_ammo = true
//#DGAdmin settings settings_teamnames_allies=^1BAKA
//#DGAdmin settings settings_teamnames_axis=^6NEKO
//#DGAdmin settings settings_teamicons_allies=cardicon_moon
//#DGAdmin settings settings_teamicons_axis=cardicon_kitten
//#DGAdmin rules "Rule 1\nRule 2\n Rule 3"
//#DGAdmin cdvar r_filmTweakInvert = 1
//#DGAdmin cdvar r_filmUseTweaks = 1
//#DGAdmin cdvar r_filmTweakEnable = 1
//#DGAdmin servertitle map = ^1<map>
//#DGAdmin servertitle mode = ^3iSnipe: ^1SND
Dynamic Properties --> Antiweaponhack
setting: settings_antiweaponhack
Antiweaponhack here acts like a class unlocker detector. It will read all the restricted weapons from the current DSR.
If usage of restricted weapon detected, hacker will be banned instantly.
Please note, you have to configure your DSR properly.
I.e. for iSnipe mode, you have to restrict all the weapons except l118a and stinger.
Code: Select all
gameOpt commonOption.weaponRestricted.iw5_acr "1"
gameOpt commonOption.weaponRestricted.iw5_ak47 "1"
gameOpt commonOption.weaponRestricted.iw5_as50 "1"
//...
gameOpt commonOption.weaponRestricted.iw5_l96a1 "0"
gameOpt commonOption.weaponRestricted.stinger "0"
Server Title
setting: settings_servertitle
Its possible to achieve custom map & mode names in the servers browser.
Accessible through DSR settings:
//#DGAdmin servertitle map = <map title>
Map title in the server list. Supported <map> placeholder. Max length is 28 characters.
//#DGAdmin servertitle mode = <mode title>
Mode title in the server list. Max length is 15 characters.

Timed Messages
Messages are stored in Utils/announcer.txt, one message per line.
Setting is settings_timed_messages
Interval can be changed using settings_timed_messages_interval
Unlimited ammo
Unlimited ammo feature can be enabled in several ways:
- command: !unlimitedammo <on/off>
- setting: settings_unlimited_ammo
- DSR: //#DGAdmin settings settings_unlimited_ammo = true
LockServer
Prevent any player from connecting the server. Useful for 1v1 and clanwars.
Accesible through !lockserver command
COMMANDS
Total count of commands: 119 ± 7.
Enough for any cases, don't you think?
*filter* placeholder
Instead of applying command for a single player, now you can apply it for a Set of players.
Available selectors:
- *all* = all of the players
- *allies* = allies of the command issuer
- *enemies* = enemies of the command issuer
- *team1* = axis
- *team2* = allies
- *spectators*
- *alive*
- *me* = command issuer
- *name:* - specify directly part of player's name or clantag
Supported conjunction, disjunction and complement of selectors:
*selector1&selector2* = conjunction of selector1 and selector2
*selector1|selector2* = disjunction of selector1 and selector2
*-selector* = complement of the selector in U
Conjunction and disjunction have same priority, i.e string is parsed from left to right.
examples:
Code: Select all
!kill *all&-me*
kill everyone except me
!kill *all&-name:bern*
kill everyone except bern
!kill *enemies*
kill all your enemies
!foreach *enemies* fc <p> cdvar -d r_skipPvs 1
( ͡° ͜ʖ ͡°)
!foreach *team1|team2* changeteam <player>
swap teams
!foreach *-name:bern|-name:lambder&-spectators* setafk <p>
lambder will loose in 1v1
!weapon <player | *filter*> <raw weapon string> [-t]
Give weapon to player / set of players.
Optional flag -t to take other weapons.
Example:
Code: Select all
!weapon *all* iw5_l96a1_mp_thermal_heartbeat_silencer03_camo11 -t
!fx <on/off>
Remove all the fog and smoke.
!cdvar <<-ifds> <dvar> <value> | <-r> [dvar] [value]>
Set client dvar for issuer.
Flags:
- -i, --int: interpret value as integer
- -f, --float: interpret value as float
- -d, --direct: interpret value type automatically. Its possible to set complex numbers,
vectors, strings etc. (separate vector parts by space) - -s, --save: Save dvar permanently. (wont be lost after player reconnect)
"direct" interpreter will be used. - -r, --reset: Reset saved dvars
All the possible syntaxes:
Code: Select all
!cdvar -i <dvar> <value>
!cdvar -f <dvar> <value>
!cdvar -d <dvar> <value>
!cdvar -s <dvar> <value> - Save dvar
!cdvar -r - Reset all the saved dvars
!cdvar -r <dvar> - Reset a specific dvar
!cdvar -r <dvar> <value> - Reset a specific dvar, and apply new value instantly
example:
!cdvar --save cg_chatHeight 0
!votecancel
Abort the voting
!frfc *filter* <command>
A shortening of
Code: Select all
!foreach *filter* fc <player> <command>
!dsrnames
Displays the available game modes
!unlimitedammo <on/off>
Toggle the unlimited ammo feature.
!drunk
Like "!shellshock" from MW2.
!moab <player | *filter*>
Give a working M.O.A.B. to player.
You have to load optional "DGAdmin.nuke.dll" asset.
If you dont need this command, disable it in settings, and remove the .dll
!clantag <player> [tag]
Set custom clan tag for a player. Max length is 7 characters. Leave tag field to reset it.
!lockserver [reason]
Prevent any player from connecting the server. Useful for 1v1 and clanwars.
Players, connected at the moment of command execution, will be added to whitelist.
Other changes / bugfixes
- functionality to disable custom team names/icons
- fixed !ft 7 Glowing bodies texture hack
- fixed client crash "Server command overflow" at UTILS_SetClientDvars
- fixed crash at OnExitLevel::xlr_database.Save
- fixed crash at !votekick
- Restricted nested !foreach (unuseful, possible to crash server)
- hardcoded «banned» or «sucker» group. This group is useful to restrict any command to player.
- !3rdperson fix for tekno 2.8.0.2
- !clankick <sender> placeholder - fixed <issuerf>
- amended list of DLC maps (for !map, !gametype)
- !sunlight is saved permanently
- !night is saved permanently
- updated *abusive* and *unsafe* group placeholders
- !pban is deprecated
- isnipe_antiweaponhack is deprecated
- isnipe_antinoscope is deprecated
- settings_enable_misccommands is deprecated
- settings_enable_autofpsunlock is deprecated
Code: Select all
* settings_disabled_commands
* settings_timed_messages
* settings_timed_messages_interval
* settings_dynamic_properties
* settings_dynamic_properties_delay
* settings_enable_alive_counter
* settings_antiweaponhack
* settings_servertitle
* settings_unlimited_ammo
Syntax changes
Code: Select all
* !cdvar <int/foat/string/direct> <key> <value> --> !cdvar <<-ifds> <dvar> <value> | <-r> [dvar] [value]>
* !kill <player> --> !kill <player | *filter*>
* !foreach <includeself> <command> --> !foreach *filter* <command>
* !yell <player|all> <message> --> !yell <player | *filter*> <message>
* !freeze <player> --> !freeze <player | *filter*>
* !unfreeze <player> --> !unfreeze <player | *filter*>
* !mute <player> --> !mute <player | *filter*>
* !unmute <player> --> !unmute <player | *filter*>
* !teleport <player1> <player2> --> !teleport <player1 | *filter*> <player2>
* !ac130 <all | <player>> [-p] --> !ac130 <player | *filter*> [-p]
* !rotatescreen <player> <degree> --> !rotatescreen <player | *filter*> <degree>
DOWNLOAD
Source: https://github.com/FredericaBernkastel/codmw3-server-DGAdmin-plugin
Script: https://github.com/FredericaBernkastel/codmw3-server-DGAdmin-plugin/releases/download/v3.5.1/v3.5.1.zip
Documentation: https://drive.google.com/file/d/0B4OfimTH0gRhaXJFYWRId0ZZaG8/view?usp=sharing
Code: Select all
checksums:
SHA1: 3699510CA09201941F1CC180BC1DCD86172A8864
SHA256: EE7693785CB1443D66FCC6AF756C9F5FD56FF20B87E8FB08EDCBD5B6164AFA88
virustotal:
https://www.virustotal.com/#/file/ee7693785cb1443d66fcc6af756c9f5fd56ff20b87e8fb08edcbd5b6164afa88
INSTALLATION
Warning:
DGAdmin v3.5 requires Tekno v2.8.0.4 and later.
If you wish to install DGAdmin on older server, please use older DGAdmin version. i.e v3.4.19
- Copy DGAdmin.dll to the "/scripts" folder
- Don't forget to update InfinityScript.dll
- Open "/players2/server.cfg", and add below:
Code: Select all
loadscript "DGAdmin.dll"
- Start server, wait till plugin loaded, then kill it
- Go to "/scripts/DGAdmin/", and configure the script
- Start server again.
----------------------------------------------------------------------------
Sincerely, F. Bernkastel
Contact me at
- E-Mail: bernkastel.frederica@protonmail.com
- Discord: Frederica Bernkastel#3247
- https://discord.gg/q9bmYPz
nipa~★( =^_^= )
