--==[[########################################################################################################]]==-- --==[[ Script : KennySpeak Lua ]]==-- --==[[ Author : Imagine Programming ]]==-- --==[[ Website : www.imagine-programming.com ]]==-- --==[[ ]]==-- --==[[ Based on the Kenny Translator by Kohan Ikin: http://www.namesuppressed.com/kenny/ ]]==-- --==[[ ]]==-- --==[[ Functions : ]]==-- --==[[ table.count(); Counts all items in a table. ]]==-- --==[[ IsInTable(); Checks if a certain value is in a table. ]]==-- --==[[ string.mid(); Gets a portion of a string of given length from given start position. ]]==-- --==[[ TranslateKenny(); Translates normal text to kennyspeak, and back. ]]==-- --==[[########################################################################################################]]==-- function table.count(tbl) local n = 0; if(type(tbl)=="table")then for i, v in pairs(tbl) do n = i;end end return n;end tblChars = {}; for i=65, 90 do local c = string.char(i);if(c~="M")and(c~="P")and(c~="F")then tblChars[table.count(tblChars)+1]=c;end end for i=97, 122 do local c = string.char(i);if(c~="m")and(c~="p")and(c~="f")then tblChars[table.count(tblChars)+1]=c;end end function IsIntable(tbl, var) for i, v in pairs(tbl) do if(v==var)then return true;end end return false;end function string.mid(str, nStart, nNumOfChars) local nEnd=(nStart+nNumOfChars)-1;if(nNumOfChars==-1)then nEnd=-1;end return string.sub(str, nStart, nEnd);end function TranslateKenny(sKennyText) local dialect = "KENNYSPEAK"; local translated = ""; for i=1, string.len(sKennyText) do local sChar = string.mid(sKennyText, i, 1); if(IsIntable(tblChars, sChar))then dialect = "NORMAL"; break; end end if(dialect=="NORMAL")then for i=0, string.len(sKennyText) do local c = string.mid(sKennyText, i, 1); if(c=="e")then translated = translated.."mpp"; elseif(c=="t")then translated = translated.."fmp"; elseif(c=="a")then translated = translated.."mmm"; elseif(c=="o")then translated = translated.."ppf"; elseif(c=="i")then translated = translated.."mff"; elseif(c=="n")then translated = translated.."ppp"; elseif(c=="s")then translated = translated.."fmm"; elseif(c=="h")then translated = translated.."mfp"; elseif(c=="r")then translated = translated.."pff"; elseif(c=="d")then translated = translated.."mpm"; elseif(c=="l")then translated = translated.."pmf"; elseif(c=="c")then translated = translated.."mmf"; elseif(c=="u")then translated = translated.."fmf"; elseif(c=="m")then translated = translated.."ppm"; elseif(c=="w")then translated = translated.."fpp"; elseif(c=="f")then translated = translated.."mpf"; elseif(c=="g")then translated = translated.."mfm"; elseif(c=="y")then translated = translated.."ffm"; elseif(c=="p")then translated = translated.."pfm"; elseif(c=="b")then translated = translated.."mmp"; elseif(c=="v")then translated = translated.."fpm"; elseif(c=="k")then translated = translated.."pmp"; elseif(c=="j")then translated = translated.."pmm"; elseif(c=="x")then translated = translated.."fpf"; elseif(c=="q")then translated = translated.."pfp"; elseif(c=="z")then translated = translated.."ffp"; -- A little break lol; elseif(c=="E")then translated = translated.."Mpp"; elseif(c=="T")then translated = translated.."Fmp"; elseif(c=="A")then translated = translated.."Mmm"; elseif(c=="O")then translated = translated.."Ppf"; elseif(c=="I")then translated = translated.."Mff"; elseif(c=="N")then translated = translated.."Ppp"; elseif(c=="S")then translated = translated.."Fmm"; elseif(c=="H")then translated = translated.."Mfp"; elseif(c=="R")then translated = translated.."Pff"; elseif(c=="D")then translated = translated.."Mpm"; elseif(c=="L")then translated = translated.."Pmf"; elseif(c=="C")then translated = translated.."Mmf"; elseif(c=="U")then translated = translated.."Fmf"; elseif(c=="M")then translated = translated.."Ppm"; elseif(c=="W")then translated = translated.."Fpp"; elseif(c=="F")then translated = translated.."Mpf"; elseif(c=="G")then translated = translated.."Mfm"; elseif(c=="Y")then translated = translated.."Ffm"; elseif(c=="P")then translated = translated.."Pfm"; elseif(c=="B")then translated = translated.."Mmp"; elseif(c=="V")then translated = translated.."Fpm"; elseif(c=="K")then translated = translated.."Pmp"; elseif(c=="J")then translated = translated.."Pmm"; elseif(c=="X")then translated = translated.."Fpf"; elseif(c=="Q")then translated = translated.."Pfp"; elseif(c=="Z")then translated = translated.."Ffp"; else translated = translated..c;end end elseif(dialect=="KENNYSPEAK")then for i=0, string.len(sKennyText) do local c = string.mid(sKennyText, i, 1) or "";c=tostring(c); --just making sure no numbers or nil's get returned. local b = string.mid(sKennyText, i+1, 2) or "";b=tostring(b); --and again. if(c=="m")then if(b=="pp")then translated = translated.."e"; i=i+2; elseif(b=="mm")then translated = translated.."a"; i=i+2; elseif(b=="ff")then translated = translated.."i"; i=i+2; elseif(b=="fp")then translated = translated.."h"; i=i+2; elseif(b=="pm")then translated = translated.."d"; i=i+2; elseif(b=="mf")then translated = translated.."c"; i=i+2; elseif(b=="pf")then translated = translated.."f"; i=i+2; elseif(b=="fm")then translated = translated.."g"; i=i+2; elseif(b=="mp")then translated = translated.."b"; i=i+2; end elseif(c=="p")then if(b=="pf")then translated = translated.."o"; i=i+2; elseif(b=="pp")then translated = translated.."n"; i=i+2; elseif(b=="ff")then translated = translated.."r"; i=i+2; elseif(b=="mf")then translated = translated.."l"; i=i+2; elseif(b=="pm")then translated = translated.."m"; i=i+2; elseif(b=="fm")then translated = translated.."p"; i=i+2; elseif(b=="mp")then translated = translated.."k"; i=i+2; elseif(b=="mm")then translated = translated.."j"; i=i+2; elseif(b=="fp")then translated = translated.."q"; i=i+2; end elseif(c=="f")then if(b=="mp")then translated = translated.."t"; i=i+2; elseif(b=="mm")then translated = translated.."s"; i=i+2; elseif(b=="mf")then translated = translated.."u"; i=i+2; elseif(b=="pp")then translated = translated.."w"; i=i+2; elseif(b=="fm")then translated = translated.."y"; i=i+2; elseif(b=="pm")then translated = translated.."v"; i=i+2; elseif(b=="pf")then translated = translated.."x"; i=i+2; elseif(b=="fp")then translated = translated.."z"; i=i+2; end elseif(c=="M")then if(b=="pp")then translated = translated.."E"; i=i+2; elseif(b=="mm")then translated = translated.."A"; i=i+2; elseif(b=="ff")then translated = translated.."I"; i=i+2; elseif(b=="fp")then translated = translated.."H"; i=i+2; elseif(b=="pm")then translated = translated.."D"; i=i+2; elseif(b=="mf")then translated = translated.."C"; i=i+2; elseif(b=="pf")then translated = translated.."F"; i=i+2; elseif(b=="fm")then translated = translated.."G"; i=i+2; elseif(b=="mp")then translated = translated.."B"; i=i+2; end elseif(c=="P")then if(b=="pf")then translated = translated.."O"; i=i+2; elseif(b=="pp")then translated = translated.."N"; i=i+2; elseif(b=="ff")then translated = translated.."R"; i=i+2; elseif(b=="mf")then translated = translated.."L"; i=i+2; elseif(b=="pm")then translated = translated.."M"; i=i+2; elseif(b=="fm")then translated = translated.."P"; i=i+2; elseif(b=="mp")then translated = translated.."K"; i=i+2; elseif(b=="mm")then translated = translated.."J"; i=i+2; elseif(b=="fp")then translated = translated.."Q"; i=i+2; end elseif(c=="F")then if(b=="mp")then translated = translated.."T"; i=i+2; elseif(b=="mm")then translated = translated.."S"; i=i+2; elseif(b=="mf")then translated = translated.."U"; i=i+2; elseif(b=="pp")then translated = translated.."W"; i=i+2; elseif(b=="fm")then translated = translated.."Y"; i=i+2; elseif(b=="pm")then translated = translated.."V"; i=i+2; elseif(b=="pf")then translated = translated.."X"; i=i+2; elseif(b=="fp")then translated = translated.."Z"; i=i+2; end else translated = translated..c; end end end return translated; end