Staredit Network > Forums > SC1 Mapping Tools > Topic: [EUD] Map Time Locking
[EUD] Map Time Locking
Jun 30 2019, 6:04 pm
By: T-warp  

Jun 30 2019, 6:04 pm T-warp Post #1



Well, the title says it all. When I was making a map recently, some people came into lobby, downloaded the incomplete and mostly bugged map and then left to play it somewhere else. So I decided to use EUD magic to add time lock to the map. Then it became apparent that I can't adjust the triggers every day, so I made this little tool.

It's a command-line tool that injects time-locking triggers into a map, meaning you get to decide when it is playable and when it expires. With a good map protector, it's a very neat thing to have. Some limitations: it does recycle its own triggers, but not the STR section (removes the string accordingly, but doesn't compress it back) so you shouldn't use it too many times without some repair tool. It's meant to be used on raw maps without protection (or in protector toolchain), otherwise it might mess some things. Will update if there are bugs or something, let me know.



Usage:


-i <input_file> Input map file
-o <output_file> Output map file (can be the same as output)
-f <unlock_begin> Relative specification of unlock begin (see below)
-t <unlock_end> Relative specification of unlock end (see below)
-m <message> Message to display when map is locked (see below)
-r Replace variables in all trigger actions



Date format:

<Years>:<Days>:<Hours>:<Minutes>:<Seconds>



Date Example:

"0:-1:0:0:0 Means yesterday at this time"

Message format:

This uses Scmdraft string format (See Scmdraft string editor)

Message can include variables %YYYY[F|T]%, %MM[F|T]%, %DD[F|T]%, %HH[F|T]%, %mm[F|T]%, %SS[F|T]% where F means From and T means To

Example:

qlock.exe -i my_cool_map.scx -o my_cool_map_locked.scx -f 0:0:-1:0:0:0 -t 0:0:1:0:0:0 -m "Yo I made this map time-locked. It will be unplayable on %MMT%.%DDT% at %HHT%:%mmT%."


Above example command will produce my_cool_map_locked.scx that will be only playable for a day (timezones might vary). When it's no longer playable, it will display a message telling people until when it was playable, give them 5 seconds to read it and then defeat for all players.



It's not recommended to use it in loop without repairing STR section (editing in editor or something).



Source code for python version

Source code for safe version

Attachments:
QLock.exe
Hits: 1 Size: 255.5kb

Post has been edited 13 time(s), last time on Jul 19 2019, 4:39 pm by T-warp.




Jul 1 2019, 4:04 pm MTiger156 Post #2



A brilliant tool. I see some great applications already.

"Version Control" - Maps that receive frequent/periodic updates can use this to effectively prevent old versions from being played.

"Closed Beta" - If you want to run public testing but minimize exposure of the map, you can use this (on a short timer) to ensure that the map isn't played without your presence at some later time.




Jul 8 2019, 9:35 pm Sato Post #3



Cool stuff, hopefully some people are still around to make use of it - sure wish I had this when I was testing Poker Defense versions a year or two ago.. lol



None.

Jul 13 2019, 9:09 pm Wormer Post #4



Quote from T-warp
Above example command will produce my_cool_map_locked.scx that will be only playable for a day (timezones might vary). When it's no longer playable, it will display a message telling people until when it was playable, give them 5 seconds to read it and then defeat for all players.

This is cool, but does it use computer time? Means that the protection can be bypassed by setting appropriate date.



Some.

Jul 13 2019, 11:23 pm T-warp Post #5



Quote from Wormer
Quote from T-warp
Above example command will produce my_cool_map_locked.scx that will be only playable for a day (timezones might vary). When it's no longer playable, it will display a message telling people until when it was playable, give them 5 seconds to read it and then defeat for all players.

This is cool, but does it use computer time? Means that the protection can be bypassed by setting appropriate date.

I have no idea. There were few candidate offsets and I picked the first that worked on vanilla and SCR. One could possibly bypass it by changing system time, but as it comes to online playing, you can't expect everyone to do so just to play a map.




Jul 17 2019, 2:29 pm T-warp Post #6



Released source codes now.




Jul 18 2019, 3:31 pm T-warp Post #7



Rewritten core to C++, this version should be more careful with STR section and even perform relocations. Also the variable format changed. All time variables must be encapsulated in %




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[12:30 pm]
TF- -- xir
[2019-11-17. : 11:04 pm]
Ultraviolet -- lemme get some of that crack Zahaka
[2019-11-17. : 1:14 pm]
GGmano -- Zahaka
Zahaka shouted: GGmano I replied to you
sorry zahaka im not always here, why the haste and whats the problem You got?
[2019-11-16. : 10:51 pm]
jjf28 -- need the current triggers
[2019-11-16. : 10:45 pm]
Zahaka -- I replied again
[2019-11-16. : 10:45 pm]
Zahaka -- jjf28*'
[2019-11-16. : 10:45 pm]
Zahaka -- kkf28
[2019-11-16. : 10:20 pm]
jjf28 -- http://www.staredit.net/373200/ see my suggested triggers http://www.staredit.net/373199/
[2019-11-16. : 10:02 pm]
Zahaka -- I replied with the next part
[2019-11-16. : 9:49 pm]
jjf28 -- http://www.staredit.net/373196/
Please log in to shout.


Members Online: Roy, EllynBerrios, O)FaRTy1billion[MM], KrayZee