NTSL Scripts: Difference between revisions

Jump to navigation Jump to search
2,148 bytes added ,  11:11, 12 May 2014
m
→‎Useful Non-Malicious Scripts: Added Spam Removal script and AI all-channel-communication script.
imported>Kosmos
m (Fixed dead link, other small fixes.)
imported>Kosmos
m (→‎Useful Non-Malicious Scripts: Added Spam Removal script and AI all-channel-communication script.)
Line 3: Line 3:
==Useful Non-Malicious Scripts==
==Useful Non-Malicious Scripts==
=== Job Indicator ===
=== Job Indicator ===
if (!find($source, "Unknown") && $job != "No id" && !find($source, " (as ")) {
Shows everyone's jobs.
    $source = $source + " (" + $job + ")"; } // Add job next to people's names.
 
<pre>if (!find($source, "Unknown") && $job != "No id" && !find($source, " (as ")) {
  $source = $source + " (" + $job + ")"; } // Add job next to people's names.</pre>


=== Arrivals Alert Modification ===
=== Arrivals Alert Modification ===
Separates the automated arrivals messages from the AI's deliberate messages.
Separates the automated arrivals messages from the AI's deliberate messages.


if (find($content, "has signed up as")) { //Is the message an arrival message?
<pre>if (find($content, "has signed up as")) { //Is the message an arrival message?
    if ($job == "AI") { //Is it sent by the AI?
  if ($job == "AI") { //Is it sent by the AI?
      $source = "Arrivals Alert System"; //Change the source of the message
      $source = "Arrivals Alert System"; //Change the source of the message
    }
  }
}
}</pre>


=== Anonymous Messages ===
=== Anonymous Messages ===
Messages prefixed with "/anon" will hide their sender's identity.
Messages prefixed with "/anon" will hide their sender's identity.


$explodeString = explode($content, " ");
<pre>$explodeString = explode($content, " ");
if(at($explodeString, 1) ==  "/anon")
if(at($explodeString, 1) ==  "/anon")
    {
    {
        $pass = false;
      $pass = false;
        $content = substr($content, 6, length($content)+1);
      $content = substr($content, 6, length($content)+1);
        broadcast($content, $freq, "Anonymous");
      broadcast($content, $freq, "Anonymous");
    }
    }</pre>


=== Less Annoying Job Indicator ===
=== Less Annoying Job Indicator ===
Only shows abbreviations of job titles instead of full titles.
Only shows abbreviations of job titles instead of full titles.


//code shamelessly copied and pasted from Giacom's pirate script
<pre>//code shamelessly copied and pasted from Giacom's pirate script
 
def Initialize() {
def Initialize() {
$words = vector(
$words = vector(
    "Assistant", "Assnt",
    "Assistant", "Assnt",
    "Captain", "Capt",
    "Captain", "Capt",
    "Head of Personnel", "HoP",
    "Head of Personnel", "HoP",
    "Bartender", "Bar",
    "Bartender", "Bar",
    "Chef", "Chef",
    "Chef", "Chef",
    "Botanist", "Hydro",
    "Botanist", "Hydro",
    "Quartermaster", "QM",
    "Quartermaster", "QM",
    "Cargo Technician", "Cargo",
    "Cargo Technician", "Cargo",
    "Shaft Miner", "Miner",
    "Shaft Miner", "Miner",
    "Clown", "Clown",
    "Clown", "Clown",
    "Mime", "Mime",
    "Mime", "Mime",
    "Janitor", "Jan-r",
    "Janitor", "Jan-r",
    "Librarian", "Lib-n",
    "Librarian", "Lib-n",
    "Lawyer", "Law",
    "Lawyer", "Law",
    "Chaplain", "Chapl",
    "Chaplain", "Chapl",
    "Chief Engineer", "CE",
    "Chief Engineer", "CE",
    "Station Engineer", "Engi",
    "Station Engineer", "Engi",
    "Atmospheric Technician", "Atmos",
    "Atmospheric Technician", "Atmos",
    "Chief Medical Officer", "CMO",
    "Chief Medical Officer", "CMO",
    "Medical Doctor", "MD",
    "Medical Doctor", "MD",
    "Chemist", "Chem",
    "Chemist", "Chem",
    "Geneticist", "G-tic",
    "Geneticist", "G-tic",
    "Virologist", "Viro",
    "Virologist", "Viro",
    "Research Director", "RD",
    "Research Director", "RD",
    "Scientist", "Sci",
    "Scientist", "Sci",
    "Roboticist", "Robo",
    "Roboticist", "Robo",
    "Head of Security", "HoS",
    "Head of Security", "HoS",
    "Warden", "Ward",
    "Warden", "Ward",
    "Detective", "D-tiv",
    "Detective", "D-tiv",
    "Security Officer", "Sec",
    "Security Officer", "Sec",
    "AI", "AI",
    "AI", "AI",
    "Cyborg", "Borg",
    "Cyborg", "Borg",
    "Personal AI", "pAI",
    "Personal AI", "pAI",
    );
    );
   
   
    $index = 1;
    $index = 1;
  while($index <= length($words))
  while($index <= length($words))
  {
  mem(at($words, $index), at($words, $index+1));
  $index += 2;
  }
}
if(mem("initialized") != 1)
  {
  {
   Initialize();
   mem(at($words, $index), at($words, $index+1));
  mem("initialized", 1);
  $index += 2;
  }
  }
   
}
  $foo = "";
 
if(mem("initialized") != 1)
if(mem($job)) { $foo = mem($job); }
{
else { $foo = substr($job, 1, 6); }
  Initialize();
  mem("initialized", 1);
if (!find($source, "Unknown") && $job != "No id" && !find($source, " (as ")) {
}
$source = $source + " (" + $foo + ")"; }
 
$foo = "";
 
if(mem($job)) { $foo = mem($job); }
else { $foo = substr($job, 1, 6); }
 
if (!find($source, "Unknown") && $job != "No id" && !find($source, " (as ")) {
$source = $source + " (" + $foo + ")"; }</pre>


=== Selective Mute ===
=== Selective Mute ===
Line 94: Line 96:
Turn a wall com to 146.1 to listen to the output of the script.<br>
Turn a wall com to 146.1 to listen to the output of the script.<br>
authorize yourself via ;/authme PASSWORD, just say it on the general com.<br>
authorize yourself via ;/authme PASSWORD, just say it on the general com.<br>
then use ;/crewlist to find the ID of who you want to mute<br>
then use ;/crewlist to find the ID of who you want to mute.<br>
then use ;/mute ID to mute them, and ;/unmute ID to unmute them
then use ;/mute ID to mute them, and ;/unmute ID to unmute them.


$password = "<insert password here>";
<pre>$password = "<insert password here>";
 
$originalsource = $source;
$originalsource = $source;
$originaljob = $job;
$originaljob = $job;
$me = 4;
$me = 4;
 
if(!mem("crewnum")) {
if(!mem("crewnum")) {
    mem("crewnum",0);
  mem("crewnum",0);
}
}
 
$found = 0;
$found = 0;
$counter = 0;
$counter = 0;
$me = 0;
$me = 0;
while($counter < mem("crewnum")) {
while($counter < mem("crewnum")) {
    if (mem("crewlistsource" + $counter) == $originalsource) {
  if (mem("crewlistsource" + $counter) == $originalsource) {
      $me = $counter;
      $me = $counter;
      $found = 1;
      $found = 1;
    }
  }
    $counter = $counter + 1;
  $counter = $counter + 1;
}
}
 
if ($found == 0) {
if ($found == 0) {
    $me = mem("crewnum");
  $me = mem("crewnum");
    broadcast("Adding new user " + $originalsource + ", " + $originaljob + " to database at location " + mem("crewnum"),1461);
  broadcast("Adding new user " + $originalsource + ", " + $originaljob + " to database at location " + mem("crewnum"),1461);
    mem("crewlistsource" + $me,$originalsource);
  mem("crewlistsource" + $me,$originalsource);
    mem("crewlistjob" + $me,$originaljob);
  mem("crewlistjob" + $me,$originaljob);
    mem("crewlistauth" + $me, 0);
  mem("crewlistauth" + $me, 0);
    mem("crewlistmute" + $me, 0);
  mem("crewlistmute" + $me, 0);
    mem("crewnum",mem("crewnum") + 1);
  mem("crewnum",mem("crewnum") + 1);
}
}
 
//HACK ALERT
//HACK ALERT
if ($me < 1) { $me = 0; }
if ($me < 1) { $me = 0; }
 
 
if(!mem("usermessagecount")) {
if(!mem("usermessagecount")) {
    mem("usermessagecount",0);
  mem("usermessagecount",0);
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/crewlist") {
if(at($expld1, 1) ==  "/crewlist") {
    $counter = 0;
  $counter = 0;
    while($counter < mem("crewnum")) {
  while($counter < mem("crewnum")) {
      broadcast($counter + " - " + mem("crewlistsource" + $counter) + " - " + mem("crewlistjob" + $counter) + " - auth " + mem("crewlistauth" +
      broadcast($counter + " - " + mem("crewlistsource" + $counter) + " - " + mem("crewlistjob" + $counter) + " - auth " + mem("crewlistauth" +
$counter) + " - mute " + mem("crewlistmute" + $counter),1461," "," ");
$counter) + " - mute " + mem("crewlistmute" + $counter),1461," "," ");
      $counter = $counter + 1;
      $counter = $counter + 1;
    }
  }
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/who") {
if(at($expld1, 1) ==  "/who") {
    broadcast(mem("crewlistsource" + at($expld1, 2)),1461);
  broadcast(mem("crewlistsource" + at($expld1, 2)),1461);
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/crewnum") {
if(at($expld1, 1) ==  "/crewnum") {
    broadcast(mem("crewnum"), 1461);
  broadcast(mem("crewnum"), 1461);
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/myid") {
if(at($expld1, 1) ==  "/myid") {
    broadcast("Your ID is " + $me, 1461);
  broadcast("Your ID is " + $me, 1461);
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/mute" && mem("crewlistauth" + $me) >= 2) {
if(at($expld1, 1) ==  "/mute" && mem("crewlistauth" + $me) >= 2) {
    mem("crewlistmute" + at($expld1, 2),1);
  mem("crewlistmute" + at($expld1, 2),1);
    broadcast(mem("crewlistsource" + at($expld1, 2)) + " has been muted.");
  broadcast(mem("crewlistsource" + at($expld1, 2)) + " has been muted.");
    $pass = 0;
  $pass = 0;
}
}
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/unmute" && mem("crewlistauth" + $me) >= 2) {
if(at($expld1, 1) ==  "/unmute" && mem("crewlistauth" + $me) >= 2) {
    mem("crewlistmute" + at($expld1, 2),0);
  mem("crewlistmute" + at($expld1, 2),0);
    broadcast(mem("crewlistsource" + at($expld1, 2)) + " has been unmuted.");
  broadcast(mem("crewlistsource" + at($expld1, 2)) + " has been unmuted.");
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/authme") {
if(at($expld1, 1) ==  "/authme") {
    if(at($expld1, 2) == $password) {
  if(at($expld1, 2) == $password) {
      mem("crewlistauth" + $me, 2);
      mem("crewlistauth" + $me, 2);
    }
  }
    $pass = 0;
  $pass = 0;
}
}
 
$expld1 = explode($content, " ");
$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/announce" && mem("crewlistauth" + $me) >= 1) {
if(at($expld1, 1) ==  "/announce" && mem("crewlistauth" + $me) >= 1) {
    broadcast(" ",$common," "," ");
  broadcast(" ",$common," "," ");
    broadcast("ANNOUNCEMENT",$common," "," ");
  broadcast("ANNOUNCEMENT",$common," "," ");
    broadcast("  ",$common," "," ");
  broadcast("  ",$common," "," ");
    broadcast("  ",$common," "," ");
  broadcast("  ",$common," "," ");
    broadcast(upper(replace($content, "/announce", " ")),$common," "," ");
  broadcast(upper(replace($content, "/announce", " ")),$common," "," ");
    broadcast("    ",$common," "," ");
  broadcast("    ",$common," "," ");
    broadcast("    ",$common," "," ");
  broadcast("    ",$common," "," ");
    $pass = 0;
  $pass = 0;
}
}
 
if(mem("crewlistmute" + $me) == 1) {
if(mem("crewlistmute" + $me) == 1) {
    //$pass = 0;
  //$pass = 0;
    $content = " ";
  $content = " ";
    $source = $originalsource + " (MUTED)";
  $source = $originalsource + " (MUTED)";
}
}</pre>




===Cleaner Selective Mute ===
===Cleaner Selective Mute ===
mute and unmute people merely by saying "/mute FULL NAME" the name has to be capitalized and spelled properly.<br>
Mute and unmute people merely by saying "/mute FULL NAME" the name has to be capitalized and spelled properly.<br>
Authorizes by one or more sources, but could be configured for a password if you really wanted to.<br>
Authorizes by one or more sources, but could be configured for a password if you really wanted to.<br>
Great for traitor AIs who don't want their victim screaming about the oxygen siphoning!
Great for traitor AIs who don't want their victim screaming about the oxygen siphoning!


//recursive implode function, takes a vector and
<pre>//recursive implode function, takes a vector and
//combines each member into a string with a space to separate
//combines each member into a string with a space to separate
//by perogi
//by perogi
def implode($vector)
def implode($vector)
{
{
$str = at($vector, 1);
$str = at($vector, 1);
remove($vector, $str);
remove($vector, $str);
if(length($vector) > 0)  
if(length($vector) > 0)  
{
{
$str += " ";
$str += " ";
$str += implode($vector);
$str += implode($vector);
}
}
return $str;
return $str;
}
}
//mute and unmute function
//mute and unmute function
//use: type /mute or /unmute then the name of the person exactly as it is spelled
//use: type /mute or /unmute then the name of the person exactly as it is spelled
//by perogi
//by perogi
if($source == "YOUR NAME HERE") //only the name in this line can use script
if($source == "YOUR NAME HERE") //only the name in this line can use script
{
{
if(at(explode($content, " "), 1) == "/mute")
if(at(explode($content, " "), 1) == "/mute")
{
{
$vec = explode($content, " ");
$vec = explode($content, " ");
remove($vec, "/mute");
remove($vec, "/mute");
$name = implode($vec);
$name = implode($vec);
$pass = 0;
$pass = 0;
mem($name,$name);
mem($name,$name);
}
}
if(at(explode($content, " "),1) == "/unmute")
if(at(explode($content, " "),1) == "/unmute")
{
{
$pass = 0;
$pass = 0;
$vec = explode($content, " ");
$vec = explode($content, " ");
remove($vec, "/unmute");
remove($vec, "/unmute");
mem(implode($vec), 0);
mem(implode($vec), 0);
}
}
}
}
//checks if source is muted
//checks if source is muted
//possible to get around mute by taking off ID and being unknown, hence why unknowns are all blocked
//possible to get around mute by taking off ID and being unknown, hence why unknowns are all blocked
if($source == mem($source) || $source == "Unknown")
if($source == mem($source) || $source == "Unknown")
{
{
$pass = 0;
$pass = 0;
}
}</pre>


===Horrible Pun Teller===
===Horrible Pun Teller===
This tells horrible puns. It only has 5 example puns but if you wish you can add more in the pick() list.
This tells horrible puns. It only has 5 example puns but if you wish you can add more in the pick() list.


$expld1 = explode($content, " ");
<pre>$expld1 = explode($content, " ");
if(at($expld1, 1) ==  "/pun")
if(at($expld1, 1) ==  "/pun")
{
{
broadcast(pick("When I went to the French poultry farm, it was a mess! The poulet everywhere.", "History’s most agreeable tyrant: William the Concurrer.", "What’s a real estate lawyer’s least favourite  song? “Lien On Me“.", "Do all houses come with decks? Un porch innately not.", "My dog was banned from the oil sands, because he bitumeny people."), 1459, "Automated Pun Teller", "Horrible Jokes Ahoy");
broadcast(pick("When I went to the French poultry farm, it was a mess! The poulet everywhere.", "History’s most agreeable tyrant: William the Concurrer.", "What’s a real estate lawyer’s least favourite  song? “Lien On Me“.", "Do all houses come with decks? Un porch innately not.", "My dog was banned from the oil sands, because he bitumeny people."), 1459, "Automated Pun Teller", "Horrible Jokes Ahoy");
}
}</pre>


===English To Pirate Translator===
===English To Pirate Translator===
This script initializes a list of words by using the mem() function as a hash table. By doing this it has to initialize first, if you are running this script and then add words later, you must clear the memory of the server first so it initializes again and learns the new words.
This script initializes a list of words by using the mem() function as a hash table. By doing this it has to initialize first, if you are running this script and then add words later, you must clear the memory of the server first so it initializes again and learns the new words.


After initialization, this transmission and the rest all skip to splitting the transmission's contents and check each word against the memory, using the word as a key. Because of not needing to loop through the list of words, this is a fast process. If it finds a valid word to replace, it will replace the word with the value that the key led to. Finally, after it is finished it will convert the vector into a string again and then replace the contents of the transmission with the final message.
After initialization, this transmission and the rest all skip to splitting the transmission's contents and check each word against the memory, using the word as a key. Because of not needing to loop through the list of words, this is a fast process. If it finds a valid word to replace, it will replace the word with the value that the key led to. Finally, after it is finished it will convert the vector into a string again and then replace the contents of the transmission with the final message.
 
// English To Pirate Translator Script - By Giacom
<pre>// English To Pirate Translator Script - By Giacom
 
// Helper Functions
// Helper Functions
 
def implode($vector, $adder)
def implode($vector, $adder)
{  
{  
$returnString = "";
$returnString = "";
$index = 1;
$index = 1;
 
while($index <= length($vector))
while($index <= length($vector))
{
{
$at = at($vector, $index);
$at = at($vector, $index);
$toAdd = $adder;
$toAdd = $adder;
if($index == 1)
if($index == 1)
{
{
$toAdd = "";
$toAdd = "";
}
}
$returnString = $returnString + $toAdd + $at;
$returnString = $returnString + $toAdd + $at;
$index += 1;
$index += 1;
}
}
return $returnString;
return $returnString;
}  
}  
 
def Initialize()
def Initialize()
{
{
 
// Our words! Format: real word / pirate word
// Our words! Format: real word / pirate word
$words = vector("gun", "cannon",
$words = vector("gun", "cannon",
"heaven", "davy jones' locker",
"heaven", "davy jones' locker",
"I", "aye",
"I", "aye",
"my", "meh",
"my", "meh",
"yes", "aye",
"yes", "aye",
"are", "argh",
"are", "argh",
"yeah", "yarh",
"yeah", "yarh",
"captain", "Cap'n",
"captain", "Cap'n",
"hos", "First Mate",
"hos", "First Mate",
"hop", "Crewmaster",
"hop", "Crewmaster",
"ai", "Navigator",
"ai", "Navigator",
"money", "treasure",
"money", "treasure",
"friend", "matey",
"friend", "matey",
"station", "vessel",
"station", "vessel",
"shuttle", "rowboat",
"shuttle", "rowboat",
"engine", "sails",
"engine", "sails",
  "space", "sea");
"space", "sea");
 
//broadcast("Starting Initialization...");
//broadcast("Starting Initialization...");
 
$index = 1;
  while($index <= length($words))
{
$key = at($words, $index);
$key = lower($key);
$value = at($words, $index+1);
mem($key, $value);
$index += 2;
}
//broadcast("Initialization Complete!");
}
// Script Begin
if(mem("initialized") != 1)
{
Initialize();
mem("initialized", 1);
}
$newContent = explode($content, " ");
$index = 1;
while($index <= length($newContent))
{
$entry = at($newContent, $index);
$value = mem(lower($entry));
if($value)
{
at($newContent, $index, $value);
}
 
 
  $index += 1;
$index = 1;
}  
while($index <= length($words))
{
$content = implode($newContent, " ");
$key = at($words, $index);
$key = lower($key);
// Script End
$value = at($words, $index+1);
mem($key, $value);
$index += 2;
}
//broadcast("Initialization Complete!");
}
 
// Script Begin
 
if(mem("initialized") != 1)
{
Initialize();
mem("initialized", 1);
}
 
$newContent = explode($content, " ");
$index = 1;
while($index <= length($newContent))
{
 
$entry = at($newContent, $index);
$value = mem(lower($entry));
 
if($value)
{
at($newContent, $index, $value);
}
$index += 1;
}  
 
$content = implode($newContent, " ");
 
// Script End</pre>


=== Quiz Bot ===
=== Quiz Bot ===
A bot which will ask math additions and keep track of a person's score. You can use /score to display your score. It uses the new time() feature to know when time is up asking a question.
A bot which will ask math additions and keep track of a person's score. You can use /score to display your score. It uses the new time() feature to know when time is up asking a question.


// Quiz Bot - By Giacom  
<pre>// Quiz Bot - By Giacom  
 
   
   
$time = time();
 
$time = time();
def GiveScore($name, $points)
 
{   
def GiveScore($name, $points)
$score = mem($name);
{   
$total = $points + $score;
$score = mem($name);
$message = $name + " was given " + tostring($points) + " point(s). Their total score is now " + tostring($total) + ".";
$total = $points + $score;
mem($name, $total);
$message = $name + " was given " + tostring($points) + " point(s). Their total score is now " + tostring($total) + ".";
return $message;
mem($name, $total);
//broadcast($message, $common, $quizMaster, $quizMaster);
return $message;
}  
//broadcast($message, $common, $quizMaster, $quizMaster);
}  
def GetScore($name)
 
{  
def GetScore($name)
return mem($name);
{  
}
return mem($name);
}
def GetQuestion()
 
{     
def GetQuestion()
$numberY = rand(1, 9);
{     
$numberX = rand(1, 9);
$numberY = rand(1, 9);
$looped = 0;
$numberX = rand(1, 9);
$looped = 0;
while($looped == 0 || prob(25))
{
while($looped == 0 || prob(25))
$looped += 1;
{
$numberY = $numberY * rand(1, 9);
$looped += 1;
$numberX = $numberX * rand(1, 9);
$numberY = $numberY * rand(1, 9);
}
$numberX = $numberX * rand(1, 9);
}
$question = "What is " + tostring($numberY) + " + " + tostring($numberX) + "?";
$question = "What is " + tostring($numberY) + " + " + tostring($numberX) + "?";
// Store data
mem("currentQuestion", $question);
// Store data
mem("number1", $numberY);
mem("currentQuestion", $question);
mem("number2", $numberX);
mem("number1", $numberY);
mem("lastAsked", $time);
mem("number2", $numberX);
mem("pointQuestion", $looped);
mem("lastAsked", $time);
broadcast($question, $common, $quizMaster, $quizMaster);
mem("pointQuestion", $looped);
}
broadcast($question, $common, $quizMaster, $quizMaster);
}
// Main()
 
// Main()
$quizMaster = "The Math Master";
 
$currentQuestion = mem("currentQuestion");
$quizMaster = "The Math Master";
$currentNumber1 = mem("number1");
$currentQuestion = mem("currentQuestion");
$currentNumber2 = mem("number2");
$currentNumber1 = mem("number1");
$lastAsked = mem("lastAsked");
$currentNumber2 = mem("number2");
$pointQuestion = mem("pointQuestion");
$lastAsked = mem("lastAsked");
$askNextQuestion = 15; // 15 seconds
$pointQuestion = mem("pointQuestion");
$askNextQuestion = 15; // 15 seconds
$explode = explode($content, " ");
 
$explode = explode($content, " ");
if(at($explode, 1) == "/score")
 
{  
if(at($explode, 1) == "/score")
$theScore = GetScore($source);  
{  
broadcast($source + ", you have " + $theScore + " point(s).", $common, $quizMaster, $quizMaster);
$theScore = GetScore($source);  
$skip = 1;
broadcast($source + ", you have " + $theScore + " point(s).", $common, $quizMaster, $quizMaster);
}  
$skip = 1;
}  
 
if($currentQuestion == null)
 
{
if($currentQuestion == null)
broadcast("Welcome! I am " + $quizMaster + " and I will be giving you all questions which you can answer over the radio.", $common, $quizMaster, $quizMaster);
{
broadcast("I will be keeping track of score. Use /score to view your score! Good luck! You have " +  $askNextQuestion + " seconds.", $common, $quizMaster, $quizMaster);
broadcast("Welcome! I am " + $quizMaster + " and I will be giving you all questions which you can answer over the radio.", $common, $quizMaster, $quizMaster);
GetQuestion();
broadcast("I will be keeping track of score. Use /score to view your score! Good luck! You have " +  $askNextQuestion + " seconds.", $common, $quizMaster, $quizMaster);
}
GetQuestion();
elseif($time > $lastAsked + ($askNextQuestion * 10))
}
{
elseif($time > $lastAsked + ($askNextQuestion * 10))
broadcast("No one has found the answer in the time limit. Starting new round...", $common, $quizMaster, $quizMaster);
{
GetQuestion();
broadcast("No one has found the answer in the time limit. Starting new round...", $common, $quizMaster, $quizMaster);
}
GetQuestion();
else
}
{
else
$answer = tostring($currentNumber1 + $currentNumber2);
{
if(find($explode, $answer))
$answer = tostring($currentNumber1 + $currentNumber2);
{
if(find($explode, $answer))
$results = GiveScore($source, $pointQuestion);
{
broadcast($source + " wins! Answer was: " + $answer + ". " + $results, $common, $quizMaster,  $quizMaster);
$results = GiveScore($source, $pointQuestion);
GetQuestion();
broadcast($source + " wins! Answer was: " + $answer + ". " + $results, $common, $quizMaster,  $quizMaster);
}
GetQuestion();
}
}
 
}</pre>
 
=== Spam Removal ===
To remove radio clutter when there's too many hulks and/or tourettes. Filters them out.
 
<pre>$npass = 1;
 
if ($content == "GWAAAAAAAARRRHHH!!!" || $content == "HNNNNNNNNNGGGGGGH!!!" || $content == "RAAAAAAAARGH!!!" || $content == "AAAAAAARRRGH!!!" || $content == "NNNNNNNNGGGGGGGGHH!!!") {
  $npass = 0;
 
}
if ($content == "CUNT" || $content == "SHIT" || $content == "FUCK" || $content == "COCKSUCKER" || $content == "TITS" || $content == "MOTHERFUCKER") {
  $npass = 0;
}
if (mem($source) == $content) {
  $npass = 0;
}
if (mem($source) != $content) {
  mem($source, $content);
}
 
$space = 1;
while ($space) {
  $space = 0;
  $init = substr($content, 1, 2);
  if ($init == " ") {
    $space = 1;
    $content = substr($content, 2, length($content)+1);
  }
}
$firstchar = substr($content, 1, 2);
if ($firstchar == lower($firstchar)) {
  $firstchar = upper($firstchar);
}
$content = $firstchar + substr($content, 2, length($content)+1);
 
$end = substr($content, length($content), length($content)+1);
if ($end != "." && $end != "!" && $end != "?") {
  $content += ".";
}
 
if ($content == upper($content)) {
  $content = lower($content);
  $init = upper(substr($content, 1, 2));
  $seq = substr($content, 2, length($content)+1);
  $content = $init + $seq;
}
$pass = 0;
if ($npass && $job != "Cyborg" && $job != "AI") {
  broadcast($content, $freq, $source, $job);
}</pre>
 
=== All Channel Communication for the AI ===
To ease the AI's way of communicating to each department separately.
 
<pre>//Usage: Set private to speaker/mic, set public to speaker only, use "sBlah" for sec etc, upload everywhere
if (mem("init") != 1) {
  $freqs = vector("1359", "s", "1357", "e", "1355", "m", "1353", "c", "1351", "n", "1347", "u", "1349", "v");
  $index = 1;
  while ($index <= length($freqs)) {
      $tfreq = at($freqs, $index);
      $tid = at($freqs, $index + 1);
      mem($tfreq, $tid);
      mem($tid, $tfreq);
      $index += 2;
  }
  mem("init", 1);
}
$clen = length($content) + 1;
$first = substr($content, 1, 2);
$rest = substr($content, 2, $clen);
$freqs = tostring($freq);
if ($freq == 1447 && $job == "AI" && mem($first)) {
  $tfreq = mem($first);
  broadcast($rest, $tfreq, $source, $job);
} elseif ($freq == 1447 && $job == "AI") {
  broadcast($content, 1459, $source, $job);
} elseif (mem($freqs)) {
  $tid = mem($freqs);
  broadcast("["+$tid+"]"+$content, 1447, $source, $job);
}</pre>


== Useful Malicious Scripts ==
== Useful Malicious Scripts ==
Anonymous user

Navigation menu