User Tools

Site Tools


lslsnips

This is an old revision of the document!


Create mosecode in LSL

// Morse code mapping
list morseMap = [
    "A", ".-",    "B", "-...",  "C", "-.-.",  "D", "-..",   "E", ".",
    "F", "..-.",  "G", "--.",   "H", "....",  "I", "..",    "J", ".---",
    "K", "-.-",   "L", ".-..",  "M", "--",    "N", "-.",    "O", "---",
    "P", ".--.",  "Q", "--.-",  "R", ".-.",   "S", "...",   "T", "-",
    "U", "..-",   "V", "...-",  "W", ".--",   "X", "-..-",  "Y", "-.--",
    "Z", "--..",
    "0", "-----", "1", ".----", "2", "..---", "3", "...--", "4", "....-",
    "5", ".....", "6", "-....", "7", "--...", "8", "---..", "9", "----."
];
 
// Convert a string to Morse code
string toMorse(string input) {
    input = llToUpper(input);
    string result = "";
    integer i;
    for (i = 0; i < llStringLength(input); ++i) {
        string ch = llGetSubString(input, i, i);
        integer idx = llListFindList(morseMap, [ch]);
        if (idx != -1) {
            result += llList2String(morseMap, idx + 1) + " ";
        } else if (ch == " ") {
            result += "/ "; // Slash for space between words
        }
    }
    return result;
}
 
// Listen for chat and convert to Morse
default {
    state_entry() {
        llListen(0, "", NULL_KEY, "");
    }
 
    listen(integer channel, string name, key id, string message) {
        string morse = toMorse(message);
        llSay(0, "Morse: " + morse);
    }
}
lslsnips.1758750689.txt.gz · Last modified: by miko

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki