#include "NW_I0_GENERIC" string ConvertLeetspeak(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") sTranslate = "4"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "8"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "("; if (GetStringLowerCase(sLetter) == "d") sTranslate = "|)"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "3"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "F"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "9"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "H"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "!"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "J"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "|<"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "1"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "/\/"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "|\|"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "0"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "Q"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "R"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "5"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "7"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "U"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "\/"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "\/\/"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "X"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "Y"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "2"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertLeetspeak string ProcessLeetspeak(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertLeetspeak(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertInfernal(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "c"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "j"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "v"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "y"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "y"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "d"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "i"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "g"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertInfernal string ProcessInfernal(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertInfernal(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertAbyssal(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (sLetter == "a") sTranslate = "oo"; if (sLetter == "A") sTranslate = "OO"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "d"; if (sLetter == "i") sTranslate = "oo"; if (sLetter == "I") sTranslate = "OO"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "e"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "b"; if (sLetter == "q") sTranslate = "ch"; if (sLetter == "Q") sTranslate = "Ch"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "g"; if (sLetter == "u") sTranslate = "ae"; if (sLetter == "U") sTranslate = "Ae"; if (sLetter == "v") sTranslate = "ts"; if (sLetter == "V") sTranslate = "Ts"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "b"; if (sLetter == "x") sTranslate = "bb"; if (sLetter == "X") sTranslate = "Bb"; if (sLetter == "y") sTranslate = "ee"; if (sLetter == "Y") sTranslate = "Ee"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "t"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertAbyssal string ProcessAbyssal(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertAbyssal(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertCelestial(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "v"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (sLetter == "e") sTranslate = "el"; if (sLetter == "E") sTranslate = "El"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "w"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "i"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "x"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "c"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "q"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "d"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "y"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "j"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "f"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "k"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertCelestial string ProcessCelestial(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertCelestial(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertGoblin(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "c") sTranslate = ""; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "v"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "n") sTranslate = ""; if (GetStringLowerCase(sLetter) == "o") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "q") sTranslate = ""; if (GetStringLowerCase(sLetter) == "r") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "d"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "v") sTranslate = ""; if (GetStringLowerCase(sLetter) == "w") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "x") sTranslate = ""; if (GetStringLowerCase(sLetter) == "y") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "w"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertGoblin string ProcessGoblin(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertGoblin(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertDraconic(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") sTranslate = "e"; if (sLetter == "A") sTranslate = "E"; if (sLetter == "b") return "po"; if (sLetter == "B") return "Po"; if (sLetter == "c") return "st"; if (sLetter == "C") return "St"; if (sLetter == "d") return "ty"; if (sLetter == "D") return "Ty"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "i"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "w"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (sLetter == "h") return "ni"; if (sLetter == "H") return "Ni"; if (sLetter == "i") return "un"; if (sLetter == "I") return "Un"; if (sLetter == "j") return "vi"; if (sLetter == "J") return "Vi"; if (sLetter == "k") return "go"; if (sLetter == "K") return "Go"; if (sLetter == "l") return "ch"; if (sLetter == "L") return "Ch"; if (sLetter == "m") return "li"; if (sLetter == "M") return "Li"; if (sLetter == "n") return "ra"; if (sLetter == "N") return "Ra"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "y"; if (sLetter == "p") return "ba"; if (sLetter == "P") return "Ba"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "x"; if (sLetter == "r") return "hu"; if (sLetter == "R") return "Hu"; if (sLetter == "s") return "my"; if (sLetter == "S") return "My"; if (sLetter == "t") return "dr"; if (sLetter == "T") return "Dr"; if (sLetter == "u") return "on"; if (sLetter == "U") return "On"; if (sLetter == "v") return "fi"; if (sLetter == "V") return "Fi"; if (sLetter == "w") return "zi"; if (sLetter == "W") return "Zi"; if (sLetter == "x") return "qu"; if (sLetter == "X") return "Qu"; if (sLetter == "y") return "an"; if (sLetter == "Y") return "An"; if (sLetter == "z") return "ji"; if (sLetter == "Z") return "Ji"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertDraconic string ProcessDraconic(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertDraconic(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertDwarf(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (sLetter == "a") return "az"; if (sLetter == "A") return "Az"; if (sLetter == "b") return "po"; if (sLetter == "B") return "Po"; if (sLetter == "c") return "zi"; if (sLetter == "C") return "Zi"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "a"; if (sLetter == "f") return "wa"; if (sLetter == "F") return "Wa"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "a"; if (sLetter == "j") return "dr"; if (sLetter == "J") return "Dr"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "r"; if (sLetter == "o") return "ur"; if (sLetter == "O") return "Ur"; if (sLetter == "p") return "rh"; if (sLetter == "P") return "Rh"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "h"; if (sLetter == "s") return "th"; if (sLetter == "S") return "Th"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "g"; if (sLetter == "w") return "zh"; if (sLetter == "W") return "Zh"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "q"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "j"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; }//end ConvertDwarf string ProcessDwarf(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertDwarf(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertElven(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (sLetter == "a") return "il"; if (sLetter == "A") return "Il"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "f"; if (sLetter == "c") return "ny"; if (sLetter == "C") return "Ny"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "w"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "v"; if (sLetter == "h") return "ir"; if (sLetter == "H") return "Ir"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "e"; if (sLetter == "j") return "qu"; if (sLetter == "J") return "Qu"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "c"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "e"; if (sLetter == "p") return "ty"; if (sLetter == "P") return "Ty"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "m"; if (sLetter == "s") return "la"; if (sLetter == "S") return "La"; if (sLetter == "t") return "an"; if (sLetter == "T") return "An"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "y"; if (sLetter == "v") return "el"; if (sLetter == "V") return "El"; if (sLetter == "w") return "am"; if (sLetter == "W") return "Am"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "j"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; } string ProcessElven(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertElven(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertGnome(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); //cipher based on English -> Al Baed if (GetStringLowerCase(sLetter) == "a") sTranslate = "y"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "v"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "e"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "x"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "c"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "d"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "i"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "j"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "f"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "q"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "w"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; } string ProcessGnome(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertGnome(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertHalfling(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); //cipher based on Al Baed -> English if (GetStringLowerCase(sLetter) == "a") sTranslate = "e"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "s"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "i"; if (GetStringLowerCase(sLetter) == "f") sTranslate = "w"; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "v"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "c"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "l"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "y"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "x"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "d"; if (GetStringLowerCase(sLetter) == "u") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "v") sTranslate = "f"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "q"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "j"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; } string ProcessHalfling(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertHalfling(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertOrc(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (sLetter == "a") sTranslate = "ha"; if (sLetter == "A") sTranslate = "Ha"; if (GetStringLowerCase(sLetter) == "b") sTranslate = "p"; if (GetStringLowerCase(sLetter) == "c") sTranslate = "z"; if (GetStringLowerCase(sLetter) == "d") sTranslate = "t"; if (GetStringLowerCase(sLetter) == "e") sTranslate = "o"; if (GetStringLowerCase(sLetter) == "f") sTranslate = ""; if (GetStringLowerCase(sLetter) == "g") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "h") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "i") sTranslate = "a"; if (GetStringLowerCase(sLetter) == "j") sTranslate = "m"; if (GetStringLowerCase(sLetter) == "k") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "l") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "m") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "n") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "o") sTranslate = "u"; if (GetStringLowerCase(sLetter) == "p") sTranslate = "b"; if (GetStringLowerCase(sLetter) == "q") sTranslate = "k"; if (GetStringLowerCase(sLetter) == "r") sTranslate = "h"; if (GetStringLowerCase(sLetter) == "s") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "t") sTranslate = "n"; if (GetStringLowerCase(sLetter) == "u") sTranslate = ""; if (GetStringLowerCase(sLetter) == "v") sTranslate = "g"; if (GetStringLowerCase(sLetter) == "w") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "x") sTranslate = "r"; if (GetStringLowerCase(sLetter) == "y") sTranslate = "'"; if (GetStringLowerCase(sLetter) == "z") sTranslate = "m"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; } string ProcessOrc(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertOrc(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ConvertAnimal(string sLetter) { string sTranslate = sLetter; if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (GetStringLowerCase(sLetter) == "a") return "'"; if (GetStringLowerCase(sLetter) == "b") return "'"; if (GetStringLowerCase(sLetter) == "c") return "'"; if (GetStringLowerCase(sLetter) == "d") return "'"; if (GetStringLowerCase(sLetter) == "e") return "'"; if (GetStringLowerCase(sLetter) == "f") return "'"; if (GetStringLowerCase(sLetter) == "g") return "'"; if (GetStringLowerCase(sLetter) == "h") return "'"; if (GetStringLowerCase(sLetter) == "i") return "'"; if (GetStringLowerCase(sLetter) == "j") return "'"; if (GetStringLowerCase(sLetter) == "k") return "'"; if (GetStringLowerCase(sLetter) == "l") return "'"; if (GetStringLowerCase(sLetter) == "m") return "'"; if (GetStringLowerCase(sLetter) == "n") return "'"; if (GetStringLowerCase(sLetter) == "o") return "'"; if (GetStringLowerCase(sLetter) == "p") return "'"; if (GetStringLowerCase(sLetter) == "q") return "'"; if (GetStringLowerCase(sLetter) == "r") return "'"; if (GetStringLowerCase(sLetter) == "s") return "'"; if (GetStringLowerCase(sLetter) == "t") return "'"; if (GetStringLowerCase(sLetter) == "u") return "'"; if (GetStringLowerCase(sLetter) == "v") return "'"; if (GetStringLowerCase(sLetter) == "w") return "'"; if (GetStringLowerCase(sLetter) == "x") return "'"; if (GetStringLowerCase(sLetter) == "y") return "'"; if (GetStringLowerCase(sLetter) == "z") return "'"; if (GetStringLength(sTranslate) == 1 && GetStringUpperCase(sLetter) == sLetter) sTranslate = GetStringUpperCase(sLetter); return sTranslate; } string ProcessAnimal(string sPhrase) { string sOutput; int iToggle; while (GetStringLength(sPhrase) > 1) { if (GetStringLeft(sPhrase,1) == "*") iToggle = abs(iToggle - 1); if (iToggle) sOutput = sOutput + GetStringLeft(sPhrase,1); else sOutput = sOutput + ConvertAnimal(GetStringLeft(sPhrase, 1)); sPhrase = GetStringRight(sPhrase, GetStringLength(sPhrase)-1); } return sOutput; } string ProcessCant(string sLetter) { if (GetStringLength(sLetter) > 1) sLetter = GetStringLeft(sLetter, 1); if (sLetter == "a" || sLetter == "A") return "*shields eyes*"; if (sLetter == "b" || sLetter == "B") return "*blusters*"; if (sLetter == "c" || sLetter == "C") return "*coughs*"; if (sLetter == "d" || sLetter == "D") return "*furrows brow*"; if (sLetter == "e" || sLetter == "E") return "*examines ground*"; if (sLetter == "f" || sLetter == "F") return "*frowns*"; if (sLetter == "g" || sLetter == "G") return "*glances up*"; if (sLetter == "h" || sLetter == "H") return "*looks thoughtful*"; if (sLetter == "i" || sLetter == "I") return "*looks bored*"; if (sLetter == "j" || sLetter == "J") return "*rubs chin*"; if (sLetter == "k" || sLetter == "K") return "*scratches ear*"; if (sLetter == "l" || sLetter == "L") return "*looks around*"; if (sLetter == "m" || sLetter == "M") return "*mmm hmm*"; if (sLetter == "n" || sLetter == "N") return "*nods*"; if (sLetter == "o" || sLetter == "O") return "*grins*"; if (sLetter == "p" || sLetter == "P") return "*smiles*"; if (sLetter == "q" || sLetter == "Q") return "*shivers*"; if (sLetter == "r" || sLetter == "R") return "*rolls eyes*"; if (sLetter == "s" || sLetter == "S") return "*scratches nose*"; if (sLetter == "t" || sLetter == "T") return "*turns a bit*"; if (sLetter == "u" || sLetter == "U") return "*glances idly*"; if (sLetter == "v" || sLetter == "V") return "*runs hand through hair*"; if (sLetter == "w" || sLetter == "W") return "*waves*"; if (sLetter == "x" || sLetter == "X") return "*stretches*"; if (sLetter == "y" || sLetter == "Y") return "*yawns*"; if (sLetter == "z" || sLetter == "Z") return "*shrugs*"; return "*nods*"; } string TranslateCommonToLanguage(int iLang, string sText) { switch(iLang) { case 1: //Elven return ProcessElven(sText); break; case 2: //Gnome return ProcessGnome(sText); break; case 3: //Halfling return ProcessHalfling(sText); break; case 4: //Dwarf Note: Race 4 is normally Half Elf and Race 0 is normally Dwarf. This is changed. return ProcessDwarf(sText); break; case 5: //Orc return ProcessOrc(sText); break; case 6: //Goblin return ProcessGoblin(sText); break; case 7: //Draconic return ProcessDraconic(sText); break; case 8: //Animal return ProcessAnimal(sText); break; case 9: //Thieves Cant return ProcessCant(sText); break; case 10: //Celestial return ProcessCelestial(sText); break; case 11: //Abyssal return ProcessAbyssal(sText); break; case 12: //Infernal return ProcessInfernal(sText); break; case 99: //1337 return ProcessLeetspeak(sText); break; default: break; } return ""; } int GetDefaultRacialLanguage(object oPC, int iRename) { switch(GetRacialType(oPC)) { case RACIAL_TYPE_DWARF: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Dwarven"); return 4; break; case RACIAL_TYPE_ELF: case RACIAL_TYPE_HALFELF: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Elven"); return 1; break; case RACIAL_TYPE_GNOME: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Gnome"); return 2; break; case RACIAL_TYPE_HALFLING: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Halfling"); return 3; break; case RACIAL_TYPE_HUMANOID_ORC: case RACIAL_TYPE_HALFORC: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Orc"); return 5; break; case RACIAL_TYPE_HUMANOID_GOBLINOID: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Goblin"); return 6; break; case RACIAL_TYPE_HUMANOID_REPTILIAN: case RACIAL_TYPE_DRAGON: if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Draconic"); return 7; break; default: if (GetLevelByClass(CLASS_TYPE_RANGER, oPC) || GetLevelByClass(CLASS_TYPE_DRUID, oPC)) { if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Animal"); return 8; } if (GetLevelByClass(CLASS_TYPE_ROGUE, oPC)) { if (iRename) SetLocalString(oPC, "hls_MyLanguageName", "Thieves' Cant"); return 9; } break; } return 0; } int GetDefaultClassLanguage(object oPC) { if (GetLevelByClass(CLASS_TYPE_RANGER, oPC) || GetLevelByClass(CLASS_TYPE_DRUID, oPC)) return 8; if (GetLevelByClass(CLASS_TYPE_ROGUE, oPC)) return 9; return 0; } int GetIsAlphanumeric(string sCharacter) { if (GetStringLowerCase(sCharacter) == "a" || GetStringLowerCase(sCharacter) == "b" || GetStringLowerCase(sCharacter) == "c" || GetStringLowerCase(sCharacter) == "d" || GetStringLowerCase(sCharacter) == "e" || GetStringLowerCase(sCharacter) == "f" || GetStringLowerCase(sCharacter) == "g" || GetStringLowerCase(sCharacter) == "h" || GetStringLowerCase(sCharacter) == "i" || GetStringLowerCase(sCharacter) == "j" || GetStringLowerCase(sCharacter) == "k" || GetStringLowerCase(sCharacter) == "l" || GetStringLowerCase(sCharacter) == "m" || GetStringLowerCase(sCharacter) == "n" || GetStringLowerCase(sCharacter) == "o" || GetStringLowerCase(sCharacter) == "p" || GetStringLowerCase(sCharacter) == "q" || GetStringLowerCase(sCharacter) == "r" || GetStringLowerCase(sCharacter) == "s" || GetStringLowerCase(sCharacter) == "t" || GetStringLowerCase(sCharacter) == "u" || GetStringLowerCase(sCharacter) == "v" || GetStringLowerCase(sCharacter) == "w" || GetStringLowerCase(sCharacter) == "x" || GetStringLowerCase(sCharacter) == "y" || GetStringLowerCase(sCharacter) == "z" || sCharacter == "1" || sCharacter == "2" || sCharacter == "3" || sCharacter == "4" || sCharacter == "5" || sCharacter == "6" || sCharacter == "7" || sCharacter == "8" || sCharacter == "9" || sCharacter == "0") return TRUE; return FALSE; } void ParseCommand(object oNPC, object oPC, string sCom) { if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".set") { sCom = GetStringRight(sCom, GetStringLength(sCom) - 4); while (sCom != "") { if (GetStringLeft(sCom, 1) == " " || GetStringLeft(sCom, 1) == "[" || GetStringLeft(sCom, 1) == "." || GetStringLeft(sCom, 1) == ":" || GetStringLeft(sCom, 1) == ";" || GetStringLeft(sCom, 1) == "*" || GetIsAlphanumeric(GetStringLeft(sCom, 1))) sCom = GetStringRight(sCom, GetStringLength(sCom) - 1); else { SetLocalObject(GetModule(), "hls_NPCControl" + GetStringLeft(sCom, 1), oNPC); FloatingTextStringOnCreature("The Control character for " + GetName(oNPC) + " is " + GetStringLeft(sCom, 1), oPC, FALSE); return; } } FloatingTextStringOnCreature("Your Control Character is not valid. Perhaps you are using a reserved character.", oPC, FALSE); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".fac") { if (FindSubString(GetStringLowerCase(sCom), "hostile") != -1) { ChangeToStandardFaction(oNPC, STANDARD_FACTION_HOSTILE); FloatingTextStringOnCreature("Faction set to hostile", oPC, FALSE); } else if (FindSubString(GetStringLowerCase(sCom), "commoner") != -1) { ChangeToStandardFaction(oNPC, STANDARD_FACTION_COMMONER); FloatingTextStringOnCreature("Faction set to commoner", oPC, FALSE); } else if (FindSubString(GetStringLowerCase(sCom), "defender") != -1) { ChangeToStandardFaction(oNPC, STANDARD_FACTION_DEFENDER); FloatingTextStringOnCreature("Faction set to defender", oPC, FALSE); } else if (FindSubString(GetStringLowerCase(sCom), "merchant") != -1) { ChangeToStandardFaction(oNPC, STANDARD_FACTION_MERCHANT); FloatingTextStringOnCreature("Faction set to merchant", oPC, FALSE); } } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".dis") { DestroyObject(oNPC); FloatingTextStringOnCreature(GetName(oNPC) + " dismissed", oPC, FALSE); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".fre") { FloatingTextStringOnCreature(GetName(oNPC) + " frozen", oPC, FALSE); SetCommandable(TRUE, oNPC); AssignCommand(oNPC, ClearAllActions()); AssignCommand(oNPC, ClearAllActions(TRUE)); AssignCommand(oNPC, ActionForceMoveToLocation(GetLocation(oNPC))); SetCommandable(FALSE, oNPC); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".unf") { FloatingTextStringOnCreature(GetName(oNPC) + " unfrozen", oPC, FALSE); SetCommandable(TRUE, oNPC); AssignCommand(oNPC, ActionForceMoveToLocation(GetLocation(oNPC))); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".mut") { FloatingTextStringOnCreature(GetName(oNPC) + " muted", oPC, FALSE); SetLocalInt(oNPC, "dmfi_Mute", 1); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".unm") { FloatingTextStringOnCreature(GetName(oNPC) + " un-muted", oPC, FALSE); DeleteLocalInt(oNPC, "dmfi_Mute"); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".fol") { FloatingTextStringOnCreature(GetName(oNPC) + " is now following you.", oPC, FALSE); AssignCommand(oNPC, ClearAllActions(TRUE)); AssignCommand(oNPC, ActionForceFollowObject(oPC, 2.0f)); SetCommandable(FALSE, oNPC); } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".say") { sCom = GetStringRight(sCom, GetStringLength(sCom) - 5); int iCom = StringToInt(sCom); if (GetLocalString(GetModule(), "hls206" + IntToString(iCom)) != "") { AssignCommand(oNPC, SpeakString(GetLocalString(GetModule(), "hls206" + IntToString(iCom)))); } } else if (GetStringLowerCase(GetStringLeft(sCom, 4)) == ".dam") { sCom = GetStringRight(sCom, GetStringLength(sCom) - 4); //Parses the characters until there is a space. while (GetStringLeft(sCom, 1) != " " && sCom != "") { sCom = GetStringRight(sCom, GetStringLength(sCom) - 1); } if (sCom != "" && GetStringLeft(sCom, 1) == " ") { sCom = GetStringRight(sCom, GetStringLength(sCom) - 1); int iCom = StringToInt(sCom); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(iCom, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL), oNPC); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_BLOOD_LRG_RED), oNPC); FloatingTextStringOnCreature(GetName(oNPC) + " has taken " + sCom + " damage.", oPC, FALSE); return; } return; } } void main() { int nMatch = GetListenPatternNumber(); object oShouter = GetLastSpeaker(); if (GetIsDM(oShouter)) SetLocalInt(GetModule(), "dmfi_Admin" + GetPCPublicCDKey(oShouter), 1); object oIntruder; object oTarget = GetLocalObject(oShouter, "dmfi_VoiceTarget"); object oMaster = OBJECT_INVALID; if (GetIsObjectValid(oTarget)) oMaster = oShouter; int iPhrase = GetLocalInt(oShouter, "hls_EditPhrase"); //Gets the current language that the character is speaking int iTranslate; if (GetLocalInt(oShouter, "hls_MyLanguage")) iTranslate = GetLocalInt(oShouter, "hls_MyLanguage"); else iTranslate = GetDefaultRacialLanguage(oShouter, 1); //Defines language name string sLanguageName = GetLocalString(oShouter, "hls_MyLanguageName"); if(GetCommandable() || GetCurrentAction() != ACTION_OPENLOCK) { if (nMatch == -1) { if(GetAssociate(ASSOCIATE_TYPE_HENCHMAN, GetMaster()) == OBJECT_SELF) { ClearAllActions(); BeginConversation(); } else if(!GetIsObjectValid(GetMaster())) { ClearAllActions(); BeginConversation(); } else if(GetAssociate(ASSOCIATE_TYPE_FAMILIAR, GetMaster()) == OBJECT_SELF || GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, GetMaster()) == OBJECT_SELF) { ClearAllActions(); BeginConversation(); } } else if(GetIsObjectValid(oShouter) && GetMaster() == oShouter) { SetCommandable(TRUE); RespondToShout(oShouter, nMatch, oIntruder); if(GetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1004)); } } } if (nMatch == 20600 && GetIsObjectValid(oShouter) && GetIsPC(oShouter)) { string sSaid = GetMatchedSubstring(0); if (sSaid == GetLocalString(GetModule(), "hls_voicebuffer") || sSaid == GetStringRight(GetLocalString(GetModule(), "hls_voicebuffer"), GetStringLength(GetLocalString(GetModule(), "hls_voicebuffer"))-1)) return; //(this prevents duplicate phrases from going into the log) else SetLocalString(GetModule(), "hls_voicebuffer", sSaid); if (iPhrase) { SetLocalString(GetModule(), "hls206" + IntToString(iPhrase), sSaid); DeleteLocalInt(oShouter, "hls_EditPhrase"); FloatingTextStringOnCreature("Phrase " + IntToString(iPhrase) + " has been recorded", oShouter, FALSE); return; } else if (GetStringLeft(sSaid, 1) == "[" && iTranslate) { sSaid = GetStringRight(sSaid, GetStringLength(sSaid)-1); string sSpeak = TranslateCommonToLanguage(iTranslate, sSaid); if (GetStringRight(sSaid, 1) == "]") sSaid = GetStringLeft(sSaid, GetStringLength(sSaid)-1); AssignCommand(oShouter, SpeakString(sSpeak)); //This is the complicated language widget object oEavesdrop = GetFirstPC(); while (GetIsObjectValid(oEavesdrop)) { if (GetArea(oEavesdrop) == GetArea(oShouter)) { if (GetDistanceBetween(oEavesdrop, oShouter) < 20.0f) { //Translate and Send or do Lore check if (GetIsObjectValid(GetItemPossessedBy(oEavesdrop, "hlslang_" + IntToString(iTranslate))) || GetIsObjectValid(GetItemPossessedBy(oEavesdrop, "babelfish")) || iTranslate == GetDefaultRacialLanguage(oEavesdrop, 0) || iTranslate == GetDefaultClassLanguage(oEavesdrop)) SendMessageToPC(oEavesdrop, GetName(oShouter) + " says in " + sLanguageName + ": " + sSaid); else { if (d20() + GetSkillRank(SKILL_LORE, oEavesdrop) > 20) SendMessageToPC(oEavesdrop, GetName(oShouter) + " is speaking in " + sLanguageName); } } } oEavesdrop = GetNextPC(); } PrintString(""+GetName(GetArea(oShouter))+ " " + GetName(oShouter) + " says in " + sLanguageName + ": " + sSaid + " "); } else if ((GetStringLeft(sSaid, 1) == ":" && GetLocalInt(GetModule(), "dmfi_Admin" + GetPCPublicCDKey(oShouter)))) { //This "throws" your voice to an object and properly dumps it into the log sSaid = GetStringRight(sSaid, GetStringLength(sSaid)-1); if (GetIsObjectValid(oTarget)) { AssignCommand(oTarget, SpeakString(sSaid)); PrintString(""+GetName(GetArea(oTarget))+ " " + GetName(oTarget) + ": " + sSaid + " "); } } else if (GetStringLeft(sSaid, 1) == ";" && (GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oShouter)) || GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oShouter)) || GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oShouter)) || GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_SUMMONED, oShouter)))) { sSaid = GetStringRight(sSaid, GetStringLength(sSaid)-1); object oSummon; if (GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oShouter))) oSummon = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oShouter); else if (GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oShouter))) oSummon = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oShouter); else if (GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oShouter))) oSummon = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oShouter); else if (GetIsObjectValid(GetAssociate(ASSOCIATE_TYPE_SUMMONED, oShouter))) oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oShouter); if (GetIsObjectValid(oSummon)) { AssignCommand(oSummon, SpeakString(sSaid)); PrintString(""+GetName(GetArea(oSummon))+ " " + GetName(oSummon) + ": " + sSaid + " "); } } else if (GetIsObjectValid(GetLocalObject(GetModule(), "hls_NPCControl" + GetStringLeft(sSaid, 1))) && GetLocalInt(GetModule(), "hls_Admin" + GetPCPublicCDKey(oShouter))) { //This "throws" your voice to an object and properly dumps it into the log AssignCommand(GetLocalObject(GetModule(), "hls_NPCControl" + GetStringLeft(sSaid, 1)), SpeakString(GetStringRight(sSaid, GetStringLength(sSaid)-1))); PrintString(""+GetName(GetArea(GetLocalObject(GetModule(), "hls_NPCControl" + GetStringLeft(sSaid, 1))))+ " " + GetName(GetLocalObject(GetModule(), "hls_NPCControl" + GetStringLeft(sSaid, 1))) + ": " + sSaid + " "); } else if (GetStringLeft(sSaid, 1) == "." && GetIsObjectValid(oMaster) && GetLocalInt(GetModule(), "dmfi_Admin" + GetPCPublicCDKey(oShouter))) { ParseCommand(oTarget, oMaster, sSaid); } else { //This records the phrase into the log PrintString(""+GetName(GetArea(oShouter))+ " " + GetName(oShouter) + ": " + sSaid + " "); object oTempPC = GetFirstPC(); while(GetIsObjectValid(oTempPC)) { if (GetIsDM(oTempPC) || GetLocalInt(GetModule(), "dmfi_Admin" + GetPCPublicCDKey(oTempPC))) SendMessageToPC(oTempPC, "(" + GetName(GetArea(oShouter)) + ") " + GetName(oShouter) + ": " + sSaid); oTempPC = GetNextPC(); } } } }