Hey, it's been a long time since last release, so I tried to listen to community and implement features most of you wanted.
Download link is here: /forum/dl/SSMSafeWriting-2.9.0.zip
Changelog:
- New sfwcl support, enables memory injector checks client side and sfwcl file integrity checks, to enable this, change IntegrityChecks to true in Settings
- Added future support of communication channel between sfwcl and SSM SafeWriting using IntegrityService
- IntegrityServiceEntity is now forbidden name, for sake of being used by ISE.
- You can now enable/disable kicking players using old client profile IDs <800 000, 999 999>, by setting StrictProfilePolicy to true in Settings
- Revamped Translations script, no more Slovak names! You can now use english names like [[ITEM_LOCKED]] (instead of old [[Polozka zablokovana]])
- Fixed PlayerInfo, players with ID in range 800 000 - 999 999 can no longer have stats, neither bank.
- You can now make HTTP requets from AsyncConnectHTTP by specifying port as 443.
- Revamped HTTP/HTTPS api, just HTTPS("GET", "crymp.net", "/whatever.php", function(content, err)
if not err then printf("%s", content); end
end);
- Real IP recognition, no more failed IP detections when hostname is like "DESKTOP-55AT09VC" and so on.
- You can now protect names of players, by listing their profile IDs in Settings file and setting ProtectNames to true
Name protection script compares names in lowercase and without special symbols, so even if there is "Zi;" and someone tries "$0Zi;", it gets blocked.
- You can now mute players for certain amount of time or permanently by using !muteex Playername Time, if Time is not filled or is 0, it results in permanent mute.
- You can now easily assign properties to players for certain amount of time by using new functions:
SetPlayerProperty(player,giver,"FunctionToUseOnPlayer", "FunctionToUseWhenRemovingProperty", expire=0, reason="property set")
For example if we want to mute player for 30 seconds and then unmute:
SetPlayerProperty(player,"MutePlayer","UnmutePlayer",30)
Note that giver is one who executes command on player, so in case of !muteex Someone, giver is admin/mod who does this
- You can now easily pass time into chat commands, by specifying TIME as type in arguments, format is as follows:
1y2mo3d20h30min40s - this would be 1 year, 2 months, 3 days, 20 hours, 30 minutes, 40 seconds
You don't need to use whole expression, but just fraction like 1h30min or alternative 1h30m
Units are: y - year, mo - month, d - day, h - hours, m/min - minutes, s - seconds
- You can now encrypt your scripts using EncryptFile(file, outputFile) function, for example EncryptFile(SafeWriting.AdditionalScriptsFolder.."Whatever.lua")
if outputFile is not passed, outputFile is assigned same name as file, but with .bin extension
- Level designer can now spawn entities with given teams using "us:" or "nk:" prefix, for example !ld 10 nk::US_ltv, spawns car for North Korean team
- In order to use latest level designer, please remove old LevelDesigner.sfwc from your ServerFolderAdditionalScripts folder
- You can now spawn turrets using LevelDesigner, just like this: !ld 10 us::AlienTurret
- You can now partially import CryFire scripts, basic things required for import are supported, like CryFire's syntax of AddCommand, SendMessage, teamNames, teamIDs
❤️ 0