[Client Scripting] 3rd Party

Discussion in 'Server and Client Scripting' started by LyfeOG, Oct 28, 2014.

  1. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    Hey I was wondering how to add websites like urban dictionary and other stuff into a bot. Adding websites meaning interact with it like the urban dictionary, I would type a command and the word I want to define and it'll give me the definition in my channel from urban dictionary without taking me to its website.
     
    Last edited: Oct 28, 2014
  2. Nightfall Alicorn

    Nightfall Alicorn Left Pokémon Online, most likely not coming back.

    Joined:
    Oct 15, 2013
    Messages:
    491
    Likes Received:
    171
    PO Trainer Name:
    Nightmare Moon
    Here's the client script I use for printing defines from Urban Dictionary in the channel.
    Main Link: http://pastebin.com/mu38B52F
    Raw Link: http://pastebin.com/raw.php?i=mu38B52F

    Copy and paste the code into the Script Window plug-in in the client tab. Have Safe Scripts disabled and Show Warnings enabled. When ya click OK, the instructions will print in the current channel.

    Code was given to me by jinora and edited by me (Nightfall Alicorn).

    I've set it so it doesn't work in main Pokemon Online channels. Also if you wanna modify it, the code maybe a little messy so you know.

    I don't know how coders actually get the code to be honest. I just modified it with improvements.

    Please note that the defines are written by people online that post them on the Urban Dictionary site. The code just obtains the accepted defines on their site and prints them in channel, so I don't take responsibility what are written in the defines.
     
    Last edited: Oct 29, 2014
  3. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    Thank You but I am experiencing difficulties.
    (21:52:54) ±Client Bot: Scripts updated.
    (21:52:54) ±Client Bot: Commands:
    (21:52:54) ±Client Bot: // -setbot [off/on]
    (21:52:54) ±Client Bot: // -define [word]:[selection number]
    (21:52:54) [OG]Vida: -define hi
    (21:53:10) ±Client Bot: Scripts updated.
    (21:53:10) ±Client Bot: Commands:
    (21:53:10) ±Client Bot: // -setbot [off/on]
    (21:53:10) ±Client Bot: // -define [word]:[selection number]
    (21:53:10) [OG]Vida: -setbot on
    (21:53:14) ±Client Bot: Scripts updated.
    (21:53:14) ±Client Bot: Commands:
    (21:53:14) ±Client Bot: // -setbot [off/on]
    (21:53:14) ±Client Bot: // -define [word]:[selection number]
    (21:53:14) [OG]Vida: d
    (21:53:15) ±Client Bot: Scripts updated.
    (21:53:15) ±Client Bot: Commands:
    (21:53:15) ±Client Bot: // -setbot [off/on]
    (21:53:15) ±Client Bot: // -define [word]:[selection number]
    (21:53:15) [OG]Vida: d
     
  4. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    // GLOBAL VARIABLES
    // ******** ******** ********
    var vBotSwitch = true;
    ({
    beforeChannelMessage: function(message, channel, html) {
    // #### #### #### #### ####
    // MY ADD SCRIPT - AUTO RESPOND MESSAGE
    // #### #### #### #### ####
    // VARIABLES
    // ******** ******** ********
    var vMessage = message;
    var vChannel = client.channelName(channel);
    var vMyName = client.ownName();
    var vUserSent = vMessage.substring(0, vMessage.indexOf(':'));
    var ownName = client.ownName();
    var vgBotName = "±Client Bot: ";
    var vgCommandSymbol = "-";
    var vgAutoRespond = true;
    var vgBlockedChannel = ["Blackjack","Hangman","Mafia","Tohjo Falls","Tournaments","Trivia"];




    ChannelUserID = client.channel(channel).players();

    ChannelUserName = [];

    for (var x = 0; x < ChannelUserID.length; x++)

    {

    ChannelUserName[x] = client.name(ChannelUserID[x]);

    }

    var randomName = ChannelUserName[Math.floor((Math.random()*ChannelUserName.length)+0)];
    // EXTRACT MESSAGE BY TAKING OUT THE NAME
    if (vMessage.indexOf(':') >= 0) {vMessage = vMessage.substr(vMessage.indexOf(':') + 2);}
    // SET THE MESSAGE TEXT TO LOWERCASE
    vMessage = vMessage.toLowerCase();
    // CHANNELS ALLOWED FOR BOTS
    // ******** ******** ********
    var vBotChannelAllow = ["Alicorn Sandbox", "[OG]"];

    // CHECK CHANNELS ALLOWED
    if (vBotChannelAllow.indexOf(vChannel) !== -1){
    // CHECK IF BOT IS ON FOR OTHERS OR IF YA SENT BOT TRIGGER
    if ( (vBotSwitch == true) || (vMyName == vUserSent) ){
    // RESPOND: My Name
    if (vMessage == vMyName.toLowerCase()){
    client.network().sendChanMessage(channel, "Respond to your name message here.");
    }


    // RESPOND TO: Hi, Hello, Hola, Sup, Suplo, Yo, Hey
    if (["hi", "hello", "hola", "sup", "yo", "hey"].indexOf(vMessage) !== -1){
    var vName = "±[OG] Greeter: ";
    var vMsg = [];
    vMsg[0] = "Hello!";
    vMsg[1] = " Go";
    vMsg[2] = " Sup";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    // RESPOND TO: Shoot
    if (["shoot"].indexOf(vMessage) !== -1){
    var vName = "±RPSS : ";
    var vMsg = [];
    vMsg[0] = vUserSent + " uses rock!";
    vMsg[1] = vUserSent + " uses paper!";
    vMsg[2] = vUserSent + " uses scissor!";

    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    // RESPOND TO: Flip
    if (["flip"].indexOf(vMessage) !== -1){
    var vName = "±Random: ";
    var vMsg = [];
    vMsg[0] = vUserSent + " flipped a coin at it landed on heads!";
    vMsg[1] = vUserSent + " flipped a coin and it landed on tails!";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    }
    if (vMessage == "hug"){
    var vName = "±Hug Specialist: ";
    client.network().sendChanMessage(channel, vName + vUserSent + " hugs " + randomName + " tightly with love and care! ");
    }

    }
    // DEFINE CACHED MEMORY
    var vgBot_Define_Word;
    var vgBot_Define_Data;

    print(vgBotName + "Scripts updated.");
    print(vgBotName + "Commands:");
    print(vgBotName + "// -setbot [off/on]");
    print(vgBotName + "// -define [word]:[selection number]");

    var poScript;
    poScript = ({
    beforeChannelMessage: function (message, channel, html) {
    // VARIABLES
    // ******** ******** ********
    var vMyName = client.ownName();
    var vUserSentName = message.substring(0, message.indexOf(':'));
    var vUserSentMessage = message.substr(message.indexOf(':') + 2).toLowerCase();
    var vChannelName = client.channelName(channel);

    // COMMAND + COMMAND DATA SETUP
    // ******** ******** ********
    if (vgCommandSymbol == vUserSentMessage.charAt(0)) {
    // print("command symbol detected");
    var vCommand, vCommandData;
    var vSplit = vUserSentMessage.indexOf(' ');
    if (vSplit !== -1) {
    vCommand = vUserSentMessage.substring(1, vSplit).toLowerCase();
    vCommandData = vUserSentMessage.substr(vSplit + 1);
    }
    else {
    vCommand = vUserSentMessage.substr(1).toLowerCase();
    }
    }

    // BOT OWNER COMMANDS
    // ******** ******** ********
    if (vMyName == vUserSentName) {
    // AUTO RESPOND SWITCH
    // ******** ******** ********
    if (vCommand == "setbot") {
    if (vCommandData == "on") {
    vgAutoRespond = true;
    client.network().sendChanMessage(channel, vgBotName + "Auto Messages enabled.");
    }
    if (vCommandData == "off") {
    vgAutoRespond = false;
    client.network().sendChanMessage(channel, vgBotName + "Auto Messages disabled.");
    }
    }
    }

    // DEFINE (CODE PROVIDED BY JINORA + EDITED BY NIGHTFALL ALICORN)
    // ******** ******** ********
    if (vgAutoRespond == true) {
    if (vgBlockedChannel.indexOf(vChannelName) == -1) {
    if (vCommand == "define") {
    // CHECK FOR SECONDARY COMMAND DATA
    if (vCommandData.indexOf(":") !== -1) {
    // SPLIT
    var vData = vCommandData.split(":",2);
    var vDefineWord = vData[0];
    var vDefineSelection = vData[1];

    // MAKE SURE vDefineSelection IS AN INTEGER AND FLOOR
    vDefineSelection = Math.floor(parseInt(vDefineSelection));
    if (vDefineSelection == parseInt(vDefineSelection)) {
    // DO NOTHING
    }
    else {
    vDefineSelection = 0;
    }
    }
    else {
    var vDefineWord = vCommandData;
    var vDefineSelection = 0;
    }

    var vDefStatus = "";
    // IF WORD IS STORED IN CACHED READ CURRENTLY DOWNLOAD ONE
    if (vgBot_Define_Word == vDefineWord) {
    vDefData = vgBot_Define_Data;
    vDefStatus = "(Cached)";
    }
    // IF WORD NOT CURRENTLY STORED IN CACHED DOWNLOAD IT
    if (vgBot_Define_Word != vDefineWord) {
    // GET RESULT FROM URBAN DICTIONARY AND STORE DATA
    var vResponse = sys.synchronousWebCall("
    http://api.urbandictionary.com/v0/define?term=" + (encodeURIComponent(vDefineWord)));
    var vDefData = JSON.parse(vResponse);
    vgBot_Define_Word = vDefineWord;
    vgBot_Define_Data = vDefData;
    vDefStatus = "(Downloading...)";
    }

    // CHECK IF DEFINITION DOESNT EXIST
    if (vDefData.result_type != "exact") {
    client.network().sendChanMessage(channel, vgBotName + "\"" + vDefineWord.toLowerCase() + "\"" + " is not defined!")
    }
    // IF IT DOES EXIST
    else {
    // BUILD AND COUNT DEFINITIONS AVAILABLE
    var vDefString = [];
    var vDefLength = -1;
    var vCheck = true;
    for (x=0; vCheck==true; x++){
    try {
    vDefString[x] = vDefData.list[x].definition;
    vDefLength++;
    }
    catch (err) {
    vCheck = false;
    }
    }

    // DEFINE SELECTION RANGE CHECK
    if (vDefineSelection > vDefLength) {
    vDefineSelection = vDefLength;
    }
    if (vDefineSelection < 0) {
    vDefineSelection = 0;
    }

    // OBTAIN STRING TO ALLOW LENGTH CHECK
    var vStringLimit = 4900; // String Limit is 4900
    var vStringToPrint = vDefString[vDefineSelection];

    // MESSAGE FORMAT
    var vDefMessageWord = "\"" + vDefineWord.toLowerCase() + "\"";
    var vDefMessageInfo = vStringToPrint;
    var vDefMessageSelection = "(" + vDefineSelection + "/" + vDefLength + ")"
    var vDefMessageLimitReached = "[String Limit of " + vStringLimit + " Reached]";

    // BANNED WORDS
    var vDefBanned = [
    ];

    // CHECK BANNED WORD
    if (vDefBanned.indexOf(vDefineWord) == -1) {
    // STRING LIMIT CHECK
    if (vStringToPrint.length <= vStringLimit) {
    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo);
    }
    if (vStringToPrint.length > vStringLimit) {
    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo.substring(0, vStringLimit) + " " + vDefMessageLimitReached);
    }
    }
    else {
    client.network().sendChanMessage(channel, vgBotName + "The define for this word is banned.");
    }
    }
    }
    }
    }

    }
    });

    // SWITCHES
    if ( (vMyName == vUserSent) && (vMessage == "turn up") ){
    vBotSwitch = true;
    client.network().sendChanMessage(channel, "±Bot: Bots turned on.");
    }
    if ( (vMyName == vUserSent) && (vMessage == "turn down") ){
    vBotSwitch = false;
    client.network().sendChanMessage(channel, "±Bot: Bots turned off.");
    }

    }
    // #### #### #### #### ####
    // END OF ADD SCRIPT
    // #### #### #### #### ####
    }
    })
     
  5. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    It works alone but with my code it doesn't work. I am thinking on how to incorporate this into my code. Instead of it being 2 different scripts I want it combined with my code for a single script
     
  6. Nightfall Alicorn

    Nightfall Alicorn Left Pokémon Online, most likely not coming back.

    Joined:
    Oct 15, 2013
    Messages:
    491
    Likes Received:
    171
    PO Trainer Name:
    Nightmare Moon
    The variables with vg at the start are global. It's a coding rule I started using not long ago. Since my overall script was getting huge and chances I could overwrite it without knowing. ("vg" for "variable global")

    Put these in the global section of code...
    var vgBotName = "±Client Bot: ";
    var vgCommandSymbol = "-";
    var vgAutoRespond = true;
    var vgBlockedChannel = ["Blackjack","Hangman","Mafia","Tohjo Falls","Tournaments","Trivia"];


    Also move these at the top too under the ones above...
    // DEFINE CACHED MEMORY
    var vgBot_Define_Word;
    var vgBot_Define_Data;

    print(vgBotName + "Scripts updated.");
    print(vgBotName + "Commands:");
    print(vgBotName + "// -setbot [off/on]");
    print(vgBotName + "// -define [word]:[selection number]");


    vgAutoRespond and vBotSwitch are supposed to be the same thing by the way, you need to group a section of code in a if condition.

    if (vgBotOn ==true) {
    // all the commands that others can use here for example
    }
     
  7. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    put those as an add on to my script?
     
  8. Nightfall Alicorn

    Nightfall Alicorn Left Pokémon Online, most likely not coming back.

    Joined:
    Oct 15, 2013
    Messages:
    491
    Likes Received:
    171
    PO Trainer Name:
    Nightmare Moon
    Sorry, I mean move those existing variables to the top of the code. Also with the prints.

    The if condition under it is an example of grouping code together.
     
  9. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    // GLOBAL VARIABLES
    // ******** ******** ********
    var vBotSwitch = true;
    var vgBotName = "±Client Bot: ";

    var vgCommandSymbol = "-";

    var vgAutoRespond = true;

    var vgBlockedChannel = ["Blackjack","Hangman","Mafia","Tohjo Falls","Tournaments","Trivia"];

    // DEFINE CACHED MEMORY

    var vgBot_Define_Word;

    var vgBot_Define_Data;

    print(vgBotName + "Scripts updated.");

    print(vgBotName + "Commands:");

    print(vgBotName + "// -setbot [off/on]");

    print(vgBotName + "// -define [word]:[selection number]");

    if (vgBotOn ==true) {

    // all the commands that others can use here for example

    }

    var poScript;

    poScript = ({

    beforeChannelMessage: function(message, channel, html) {
    // #### #### #### #### ####
    // MY ADD SCRIPT - AUTO RESPOND MESSAGE
    // #### #### #### #### ####
    // VARIABLES
    // ******** ******** ********
    var vMessage = message;
    var vChannel = client.channelName(channel);
    var vMyName = client.ownName();
    var vUserSent = vMessage.substring(0, vMessage.indexOf(':'));
    var ownName = client.ownName();
    var vMyName = client.ownName();

    var vUserSentName = message.substring(0, message.indexOf(':'));

    var vUserSentMessage = message.substr(message.indexOf(':') + 2).toLowerCase();

    var vChannelName = client.channelName(channel);

    // COMMAND + COMMAND DATA SETUP

    // ******** ******** ********

    if (vgCommandSymbol == vUserSentMessage.charAt(0)) {

    // print("command symbol detected");

    var vCommand, vCommandData;

    var vSplit = vUserSentMessage.indexOf(' ');

    if (vSplit !== -1) {

    vCommand = vUserSentMessage.substring(1, vSplit).toLowerCase();

    vCommandData = vUserSentMessage.substr(vSplit + 1);

    }

    else {

    vCommand = vUserSentMessage.substr(1).toLowerCase();

    }

    }

    // BOT OWNER COMMANDS

    // ******** ******** ********

    if (vMyName == vUserSentName) {

    // AUTO RESPOND SWITCH

    // ******** ******** ********

    if (vCommand == "setbot") {

    if (vCommandData == "on") {

    vgAutoRespond = true;

    client.network().sendChanMessage(channel, vgBotName + "Auto Messages enabled.");

    }

    if (vCommandData == "off") {

    vgAutoRespond = false;

    client.network().sendChanMessage(channel, vgBotName + "Auto Messages disabled.");

    }

    }

    }

    // DEFINE (CODE PROVIDED BY JINORA + EDITED BY NIGHTFALL ALICORN)

    // ******** ******** ********

    if (vgAutoRespond == true) {

    if (vgBlockedChannel.indexOf(vChannelName) == -1) {

    if (vCommand == "define") {

    // CHECK FOR SECONDARY COMMAND DATA

    if (vCommandData.indexOf(":") !== -1) {

    // SPLIT

    var vData = vCommandData.split(":",2);

    var vDefineWord = vData[0];

    var vDefineSelection = vData[1];

    // MAKE SURE vDefineSelection IS AN INTEGER AND FLOOR

    vDefineSelection = Math.floor(parseInt(vDefineSelection));

    if (vDefineSelection == parseInt(vDefineSelection)) {

    // DO NOTHING

    }

    else {

    vDefineSelection = 0;

    }

    }

    else {

    var vDefineWord = vCommandData;

    var vDefineSelection = 0;

    }

    var vDefStatus = "";

    // IF WORD IS STORED IN CACHED READ CURRENTLY DOWNLOAD ONE

    if (vgBot_Define_Word == vDefineWord) {

    vDefData = vgBot_Define_Data;

    vDefStatus = "(Cached)";

    }

    // IF WORD NOT CURRENTLY STORED IN CACHED DOWNLOAD IT

    if (vgBot_Define_Word != vDefineWord) {

    // GET RESULT FROM URBAN DICTIONARY AND STORE DATA

    var vResponse = sys.synchronousWebCall("http://api.urbandictionary.com/v0/define?term=" + (encodeURIComponent(vDefineWord)));

    var vDefData = JSON.parse(vResponse);

    vgBot_Define_Word = vDefineWord;

    vgBot_Define_Data = vDefData;

    vDefStatus = "(Downloading...)";

    }

    // CHECK IF DEFINITION DOESNT EXIST

    if (vDefData.result_type != "exact") {

    client.network().sendChanMessage(channel, vgBotName + "\"" + vDefineWord.toLowerCase() + "\"" + " is not defined!")

    }

    // IF IT DOES EXIST

    else {

    // BUILD AND COUNT DEFINITIONS AVAILABLE

    var vDefString = [];

    var vDefLength = -1;

    var vCheck = true;

    for (x=0; vCheck==true; x++){

    try {

    vDefString[x] = vDefData.list[x].definition;

    vDefLength++;

    }

    catch (err) {

    vCheck = false;

    }

    }

    // DEFINE SELECTION RANGE CHECK

    if (vDefineSelection > vDefLength) {

    vDefineSelection = vDefLength;

    }

    if (vDefineSelection < 0) {

    vDefineSelection = 0;

    }

    // OBTAIN STRING TO ALLOW LENGTH CHECK

    var vStringLimit = 4900; // String Limit is 4900

    var vStringToPrint = vDefString[vDefineSelection];

    // MESSAGE FORMAT

    var vDefMessageWord = "\"" + vDefineWord.toLowerCase() + "\"";

    var vDefMessageInfo = vStringToPrint;

    var vDefMessageSelection = "(" + vDefineSelection + "/" + vDefLength + ")"

    var vDefMessageLimitReached = "[String Limit of " + vStringLimit + " Reached]";

    // BANNED WORDS

    var vDefBanned = [

    ];

    // CHECK BANNED WORD

    if (vDefBanned.indexOf(vDefineWord) == -1) {

    // STRING LIMIT CHECK

    if (vStringToPrint.length <= vStringLimit) {

    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo);

    }

    if (vStringToPrint.length > vStringLimit) {

    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo.substring(0, vStringLimit) + " " + vDefMessageLimitReached);

    }

    }

    else {

    client.network().sendChanMessage(channel, vgBotName + "The define for this word is banned.");

    }
    }
    }
    }
    }
    }
    });
    ChannelUserID = client.channel(channel).players();
    ChannelUserName = [];
    for (var x = 0; x < ChannelUserID.length; x++)
    {
    ChannelUserName[x] = client.name(ChannelUserID[x]);
    }
    var randomName = ChannelUserName[Math.floor((Math.random()*ChannelUserName.length)+0)];
    // EXTRACT MESSAGE BY TAKING OUT THE NAME
    if (vMessage.indexOf(':') >= 0) {vMessage = vMessage.substr(vMessage.indexOf(':') + 2);}
    // SET THE MESSAGE TEXT TO LOWERCASE
    vMessage = vMessage.toLowerCase();
    // CHANNELS ALLOWED FOR BOTS
    // ******** ******** ********
    var vBotChannelAllow = ["Alicorn Sandbox", "[OG]"];
    // CHECK CHANNELS ALLOWED
    if (vBotChannelAllow.indexOf(vChannel) !== -1){
    // CHECK IF BOT IS ON FOR OTHERS OR IF YA SENT BOT TRIGGER
    if ( (vBotSwitch == true) || (vMyName == vUserSent) ){
    // RESPOND: My Name
    if (vMessage == vMyName.toLowerCase()){
    client.network().sendChanMessage(channel, "Respond to your name message here.");
    }
    // RESPOND TO: Hi, Hello, Hola, Sup, Suplo, Yo, Hey
    if (["hi", "hello", "hola", "sup", "yo", "hey"].indexOf(vMessage) !== -1){
    var vName = "±[OG] Greeter: ";
    var vMsg = [];
    vMsg[0] = "Hello!";
    vMsg[1] = " Go";
    vMsg[2] = " Sup";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    // RESPOND TO: Quote
    if (["quote"].indexOf(vMessage) !== -1){
    var vName = "±[OG] Quotes : ";
    var vMsg = [];
    vMsg[0] = " (19:07:25) [OG]Leto: just lost 26 pooints cause i left a fucking window open..!";
    vMsg[1] = " (21:18:12) [OG]JokerKing: my mom just fucking flipped shit over me not knowing where her tampons go";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    // RESPOND TO: Shoot
    if (["shoot"].indexOf(vMessage) !== -1){
    var vName = "±RPSS : ";
    var vMsg = [];
    vMsg[0] = vUserSent + " uses rock!";
    vMsg[1] = vUserSent + " uses paper!";
    vMsg[2] = vUserSent + " uses scissor!";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    // RESPOND TO: Flip
    if (["flip"].indexOf(vMessage) !== -1){
    var vName = "±Random: ";
    var vMsg = [];
    vMsg[0] = vUserSent + " flipped a coin at it landed on heads!";
    vMsg[1] = vUserSent + " flipped a coin and it landed on tails!";
    var vRNG = Math.floor((Math.random()*vMsg.length)+0);
    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);
    }
    }
    if (vMessage == "hug"){
    var vName = "±Hug Specialist: ";
    client.network().sendChanMessage(channel, vName + vUserSent + " hugs " + randomName + " tightly with love and care! ");
    }
    if (vMessage == "molest"){
    var vName = "±Pervert: ";
    var vMsg = [];
    vMsg[0] = vUserSent + " shoved a dick up his ass.";
    client.network().sendChanMessage(channel, vName + vUserSent + " injected a long black dildo into " + randomName + " booty hole! ");
    }
    // SWITCHES
    if ( (vMyName == vUserSent) && (vMessage == "turn up") ){
    vBotSwitch = true;
    client.network().sendChanMessage(channel, "±Bot: Bots turned on.");
    }
    if ( (vMyName == vUserSent) && (vMessage == "turn down") ){
    vBotSwitch = false;
    client.network().sendChanMessage(channel, "±Bot: Bots turned off.");
    }
    }
    }
    // #### #### #### #### ####
    // END OF ADD SCRIPT
    // #### #### #### #### ####
    }
    })
     
  10. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    Looks like I did it right then this happens:
    (22:42:48) Fatal Script Error line 281: SyntaxError: Parse error <global>() at 281
    The red } is line 81
    I have to go so I will deal with this tomorrow. Thanks for your help :)
     
  11. Nightfall Alicorn

    Nightfall Alicorn Left Pokémon Online, most likely not coming back.

    Joined:
    Oct 15, 2013
    Messages:
    491
    Likes Received:
    171
    PO Trainer Name:
    Nightmare Moon
    You didn't need to add this blue code, it was just an example so you know.
    if (vgBotOn ==true) {

    // all the commands that others can use here for example

    }

    That error is usually caused by missing start or end bracket if I'm correct. Possibly also if you added one extra when you shouldn't had. Check the start and end of brackets on that line of code.
     
  12. LyfeOG

    LyfeOG New Member

    Joined:
    Apr 12, 2014
    Messages:
    24
    Likes Received:
    1
    I give up no matter how much I try it is always an error!
    (17:51:28) ±Client Bot: Scripts updated.
    (17:51:28) ±Client Bot: Commands:
    (17:51:28) ±Client Bot: // -setbot [off/on]
    (17:51:28) ±Client Bot: // -define [word]:[selection number]
    (17:51:28) Fatal Script Error line 497: ReferenceError: Can't find variable: channel <global>() at scripts.js:497

    // GLOBAL VARIABLES
    // ******** ******** ********

    var vBotSwitch = true;

    var vgBotName = "±Client Bot: ";

    var vgCommandSymbol = "-";

    var vgAutoRespond = true;

    var vgBlockedChannel = ["Blackjack","Hangman","Mafia","Tohjo Falls","Tournaments","Trivia"];

    // DEFINE CACHED MEMORY

    var vgBot_Define_Word;

    var vgBot_Define_Data;

    print(vgBotName + "Scripts updated.");

    print(vgBotName + "Commands:");

    print(vgBotName + "// -setbot [off/on]");

    print(vgBotName + "// -define [word]:[selection number]");

    var poScript;

    poScript = ({

    beforeChannelMessage: function(message, channel, html) {

    // #### #### #### #### ####

    // MY ADD SCRIPT - AUTO RESPOND MESSAGE

    // #### #### #### #### ####

    // VARIABLES

    // ******** ******** ********

    var vMessage = message;

    var vChannel = client.channelName(channel);

    var vMyName = client.ownName();

    var vUserSent = vMessage.substring(0, vMessage.indexOf(':'));

    var ownName = client.ownName();

    var vMyName = client.ownName();

    var vUserSentName = message.substring(0, message.indexOf(':'));

    var vUserSentMessage = message.substr(message.indexOf(':') + 2).toLowerCase();

    var vChannelName = client.channelName(channel);

    // COMMAND + COMMAND DATA SETUP

    // ******** ******** ********

    if (vgCommandSymbol == vUserSentMessage.charAt(0)) {

    // print("command symbol detected");

    var vCommand, vCommandData;

    var vSplit = vUserSentMessage.indexOf(' ');

    if (vSplit !== -1) {

    vCommand = vUserSentMessage.substring(1, vSplit).toLowerCase();

    vCommandData = vUserSentMessage.substr(vSplit + 1);

    }

    else {

    vCommand = vUserSentMessage.substr(1).toLowerCase();

    }

    }

    // BOT OWNER COMMANDS

    // ******** ******** ********

    if (vMyName == vUserSentName) {

    // AUTO RESPOND SWITCH

    // ******** ******** ********

    if (vCommand == "setbot") {

    if (vCommandData == "on") {

    vgAutoRespond = true;

    client.network().sendChanMessage(channel, vgBotName + "Auto Messages enabled.");

    }

    if (vCommandData == "off") {

    vgAutoRespond = false;

    client.network().sendChanMessage(channel, vgBotName + "Auto Messages disabled.");

    }

    }

    }

    // DEFINE (CODE PROVIDED BY JINORA + EDITED BY NIGHTFALL ALICORN)

    // ******** ******** ********

    if (vgAutoRespond == true) {

    if (vgBlockedChannel.indexOf(vChannelName) == -1) {

    if (vCommand == "define") {

    // CHECK FOR SECONDARY COMMAND DATA

    if (vCommandData.indexOf(":") !== -1) {

    // SPLIT

    var vData = vCommandData.split(":",2);

    var vDefineWord = vData[0];

    var vDefineSelection = vData[1];

    // MAKE SURE vDefineSelection IS AN INTEGER AND FLOOR

    vDefineSelection = Math.floor(parseInt(vDefineSelection));

    if (vDefineSelection == parseInt(vDefineSelection)) {

    // DO NOTHING

    }

    else {

    vDefineSelection = 0;

    }

    }

    else {

    var vDefineWord = vCommandData;

    var vDefineSelection = 0;

    }

    var vDefStatus = "";

    // IF WORD IS STORED IN CACHED READ CURRENTLY DOWNLOAD ONE

    if (vgBot_Define_Word == vDefineWord) {

    vDefData = vgBot_Define_Data;

    vDefStatus = "(Cached)";

    }

    // IF WORD NOT CURRENTLY STORED IN CACHED DOWNLOAD IT

    if (vgBot_Define_Word != vDefineWord) {

    // GET RESULT FROM URBAN DICTIONARY AND STORE DATA

    var vResponse = sys.synchronousWebCall("http://api.urbandictionary.com/v0/define?term=" + (encodeURIComponent(vDefineWord)));

    var vDefData = JSON.parse(vResponse);

    vgBot_Define_Word = vDefineWord;

    vgBot_Define_Data = vDefData;

    vDefStatus = "(Downloading...)";

    }

    // CHECK IF DEFINITION DOESNT EXIST

    if (vDefData.result_type != "exact") {

    client.network().sendChanMessage(channel, vgBotName + "\"" + vDefineWord.toLowerCase() + "\"" + " is not defined!")

    }

    // IF IT DOES EXIST

    else {

    // BUILD AND COUNT DEFINITIONS AVAILABLE

    var vDefString = [];

    var vDefLength = -1;

    var vCheck = true;

    for (x=0; vCheck==true; x++){

    try {

    vDefString[x] = vDefData.list[x].definition;

    vDefLength++;

    }

    catch (err) {

    vCheck = false;

    }

    }

    // DEFINE SELECTION RANGE CHECK

    if (vDefineSelection > vDefLength) {

    vDefineSelection = vDefLength;

    }

    if (vDefineSelection < 0) {

    vDefineSelection = 0;

    }

    // OBTAIN STRING TO ALLOW LENGTH CHECK

    var vStringLimit = 4900; // String Limit is 4900

    var vStringToPrint = vDefString[vDefineSelection];

    // MESSAGE FORMAT

    var vDefMessageWord = "\"" + vDefineWord.toLowerCase() + "\"";

    var vDefMessageInfo = vStringToPrint;

    var vDefMessageSelection = "(" + vDefineSelection + "/" + vDefLength + ")"

    var vDefMessageLimitReached = "[String Limit of " + vStringLimit + " Reached]";

    // BANNED WORDS

    var vDefBanned = [

    ];

    // CHECK BANNED WORD

    if (vDefBanned.indexOf(vDefineWord) == -1) {

    // STRING LIMIT CHECK

    if (vStringToPrint.length <= vStringLimit) {

    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo);

    }

    if (vStringToPrint.length > vStringLimit) {

    client.network().sendChanMessage(channel, vgBotName + " " + vDefStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo.substring(0, vStringLimit) + " " + vDefMessageLimitReached);

    }

    }

    else {

    client.network().sendChanMessage(channel, vgBotName + "The define for this word is banned.");

    }

    }

    }

    }

    }

    }

    });

    ChannelUserID = client.channel(channel).players();

    ChannelUserName = [];

    for (var x = 0; x < ChannelUserID.length; x++)

    {

    ChannelUserName[x] = client.name(ChannelUserID[x]);

    }

    var randomName = ChannelUserName[Math.floor((Math.random()*ChannelUserName.length)+0)];

    // EXTRACT MESSAGE BY TAKING OUT THE NAME

    if (vMessage.indexOf(':') >= 0) {vMessage = vMessage.substr(vMessage.indexOf(':') + 2);}

    // SET THE MESSAGE TEXT TO LOWERCASE

    vMessage = vMessage.toLowerCase();

    // CHANNELS ALLOWED FOR BOTS

    // ******** ******** ********

    var vBotChannelAllow = ["Alicorn Sandbox", "[OG]"];

    // CHECK CHANNELS ALLOWED

    if (vBotChannelAllow.indexOf(vChannel) !== -1){

    // CHECK IF BOT IS ON FOR OTHERS OR IF YA SENT BOT TRIGGER

    if ( (vBotSwitch == true) || (vMyName == vUserSent) ){

    // RESPOND: My Name

    if (vMessage == vMyName.toLowerCase()){

    client.network().sendChanMessage(channel, "Respond to your name message here.");

    }

    // RESPOND TO: Hi, Hello, Hola, Sup, Suplo, Yo, Hey

    if (["hi", "hello", "hola", "sup", "yo", "hey"].indexOf(vMessage) !== -1){

    var vName = "±[OG] Greeter: ";

    var vMsg = [];

    vMsg[0] = "Hello!";

    vMsg[1] = " Go";

    vMsg[2] = " Sup";

    var vRNG = Math.floor((Math.random()*vMsg.length)+0);

    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);

    }

    // RESPOND TO: Quote

    if (["quote"].indexOf(vMessage) !== -1){

    var vName = "±[OG] Quotes : ";

    var vMsg = [];

    vMsg[0] = " (19:07:25) [OG]Leto: just lost 26 pooints cause i left a fucking window open..!";

    vMsg[1] = " (21:18:12) [OG]JokerKing: my mom just fucking flipped shit over me not knowing where her tampons go";

    var vRNG = Math.floor((Math.random()*vMsg.length)+0);

    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);

    }

    // RESPOND TO: Shoot

    if (["shoot"].indexOf(vMessage) !== -1){

    var vName = "±RPSS : ";

    var vMsg = [];

    vMsg[0] = vUserSent + " uses rock!";

    vMsg[1] = vUserSent + " uses paper!";

    vMsg[2] = vUserSent + " uses scissor!";

    var vRNG = Math.floor((Math.random()*vMsg.length)+0);

    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);

    }

    // RESPOND TO: Flip

    if (["flip"].indexOf(vMessage) !== -1){

    var vName = "±Random: ";

    var vMsg = [];

    vMsg[0] = vUserSent + " flipped a coin at it landed on heads!";

    vMsg[1] = vUserSent + " flipped a coin and it landed on tails!";

    var vRNG = Math.floor((Math.random()*vMsg.length)+0);

    client.network().sendChanMessage(channel, vName + vMsg[vRNG]);

    }

    }

    if (vMessage == "hug"){

    var vName = "±Hug Specialist: ";

    client.network().sendChanMessage(channel, vName + vUserSent + " hugs " + randomName + " tightly with love and care! ");

    }



    // SWITCHES

    if ( (vMyName == vUserSent) && (vMessage == "turn up") ){

    vBotSwitch = true;

    client.network().sendChanMessage(channel, "±Bot: Bots turned on.");

    }

    if ( (vMyName == vUserSent) && (vMessage == "turn down") ){

    vBotSwitch = false;

    client.network().sendChanMessage(channel, "±Bot: Bots turned off.");

    }

    }

    // #### #### #### #### ####

    // END OF ADD SCRIPT