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 |
