Mercurial > wow > momit-suicide-kings
annotate Utility.lua @ 3:a55f4f2a4603 tip
intial (real) commit!
author | Kyle@Kyle-PC |
---|---|
date | Thu, 23 Feb 2012 00:34:43 -0500 |
parents | |
children |
rev | line source |
---|---|
Kyle@3 | 1 --[[ |
Kyle@3 | 2 Title: Suicide Kings |
Kyle@3 | 3 Author: Brom |
Kyle@3 | 4 Version: 0.1 |
Kyle@3 | 5 ]] |
Kyle@3 | 6 |
Kyle@3 | 7 local function RandomCharacter() |
Kyle@3 | 8 |
Kyle@3 | 9 -- 0-9, A-Z, a-z = 10 + 26 + 16 |
Kyle@3 | 10 local i = math.random(0,61) |
Kyle@3 | 11 |
Kyle@3 | 12 -- strip offset and ascii jump |
Kyle@3 | 13 if ( i >= 36 ) then |
Kyle@3 | 14 -- a:z |
Kyle@3 | 15 i = ( i - 36 ) + 97 |
Kyle@3 | 16 elseif ( i >= 10 ) then |
Kyle@3 | 17 -- A:Z |
Kyle@3 | 18 i = ( i - 10 ) + 65 |
Kyle@3 | 19 else |
Kyle@3 | 20 -- 0:9 |
Kyle@3 | 21 i = ( i + 48 ) |
Kyle@3 | 22 end |
Kyle@3 | 23 |
Kyle@3 | 24 return string.char( i ) |
Kyle@3 | 25 |
Kyle@3 | 26 end |
Kyle@3 | 27 |
Kyle@3 | 28 function SuicideKings:UID( reserved ) |
Kyle@3 | 29 |
Kyle@3 | 30 -- uid length |
Kyle@3 | 31 -- unique values = 62^4 = 14776336 |
Kyle@3 | 32 local length = 4 |
Kyle@3 | 33 |
Kyle@3 | 34 -- generate a random string |
Kyle@3 | 35 local s = RandomCharacter() |
Kyle@3 | 36 for i = 1, length-1 do |
Kyle@3 | 37 local c = RandomCharacter() |
Kyle@3 | 38 s = s .. c |
Kyle@3 | 39 end |
Kyle@3 | 40 |
Kyle@3 | 41 -- if taken, try again |
Kyle@3 | 42 while ( reserved[s] ~= nil ) do |
Kyle@3 | 43 s = SuicideKings:UID( reserved ) |
Kyle@3 | 44 end |
Kyle@3 | 45 |
Kyle@3 | 46 return s |
Kyle@3 | 47 |
Kyle@3 | 48 end |