Every man is the architect of his own fortune
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
- 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
- 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:
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
Great. So it's complete version of 2.9.0. I'm gonna update beta of it that I've implemented on some servers already few weeks ago and didn't see problems with functions. Yet I was waiting for final one, great you've find the time.
I'm sure this version will be usefull for creative people. Some features were missing for years, thanks for final inclusion. Also compatibilty with CryFire as I said 2 months ago is a HUGE improvement.
Thanks Zi, I appreciate the time and effort that you spent working on this. There are a few things here that I have been wanting to see in safe writing for a long time, and I can't wait to work with this version! The compatibility with cryfire, and the ability to encrypt scripts are awesome additions.