ID:169248
 
Well, i'm not entirely sure I picked the correct name for the topic. But,

I was in a conversation last night. I was discussing of ways to block Multikeyers. The first logical step was the allow 1 key per IP. But then the topic of wireless router user's. Me, being someone who shares an IP with multiple computers can relate. So when the idea of allowing one key per computer. But I don't know anyway that could be done.

So, out of blatant curiosity, I'm asking if anyone has managed to come up with a system such as that.
Maybe if you use a client side saving type thingy whereby you store a wee file that says this computer is logged in. It should only be stored in their 'users' directory in the BYOND program file and so should therefore only affect their computer. They'd be able to get around it by deleting the file... but then again, they don't really have to know about it =)
In response to Fartmonger (#1)
To build on that, you can remake the file every minute. Loop through them all, checking to see if they have the file. If they don't, create it; if they do, check it.

Something like this.
<dm>
var/global/id = 0
world/New()
spawn()computer_check()

proc/computer_check()
var/savefile/S
var/id
while(1)
sleep(600)
for(var/client/C)
C.Export()
S = new
S << C.id
C.Export(S)
for(var/client/C)
var/savefile/S = C.Import()
S >> id
if(id != C.id)C.multikey()

client
var/id = 0
New()
.=..()
global.id += 1
id = global.id
proc/multikey()
//put in here whatever happens when the multikey is detected
In response to Loduwijk (#2)
Thank's, you saved me alot of time of researching and code writing.