Shoutbox

Help-command not working - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: Help-command not working (/showthread.php?tid=65680)

Help-command not working by Jimbo on 09-01-2006 at 08:30 AM

When I have the following script installed, the '/all' commnad doesn't work
anyone know why?
Here is the script:

code:
function OnEvent_ChatWndSendMessage(ChatWnd, sMessage) {

    if(sMessage.charAt(0) == "/"){
        return parseCommands(sMessage,ChatWnd);
    }
}
function parseCommands(sMessage,iOriginWnd){

    if (sMessage.charAt(0) == '/'){
        if(sMessage.charAt(1) == '/'){
            return sMessage;
        } else {
            var firstSpace = sMessage.search(' ');
            if(firstSpace == -1){
                var command = sMessage.toLowerCase().substr(1);
                var params = '';
            } else {
                var command = sMessage.toLowerCase().substr(1, firstSpace-1);
                var params = sMessage.substr(firstSpace+1);
            }
            if(params != "") { Debug.Trace("The command \"" + command + "\" with the parameters \"" + params + "\" has been parsed."); }
            else { Debug.Trace("The command \"" + command + "\" has been parsed."); }
            switch(command) {
                case 'colour=red':
                    iOriginWnd.SendMessage("4"+params);
                    sMessage = '';
                    break;
                case 'colour=blue':
                    iOriginWnd.SendMessage("12"+params);
                    sMessage = '';
                    break;
                case 'colour=green':
                    iOriginWnd.SendMessage("50"+params);
                    sMessage = '';
                    break;
                case 'colour=yellow':
                    iOriginWnd.SendMessage("8"+params);
                    sMessage = '';
                    break;
                case 'colour=purple':
                    iOriginWnd.SendMessage("6"+params);
                    sMessage = '';
                    break;
                case 'colour=pink':
                    iOriginWnd.SendMessage("13"+params);
                    sMessage = '';
                    break;
                case 'colour=orange':
                    iOriginWnd.SendMessage("36"+params);
                    sMessage = '';
                    break;
                default:
                case 'colour=lilac':
                    iOriginWnd.SendMessage("21"+params);
                    sMessage = '';
                    break;
            }
        }
    }
    return sMessage;
}
function OnGetScriptCommands()
{
    var commands = '<ScriptCommands>';
        commands+='<Command>';
            commands+='<Name>colour=red</Name>';
            commands+='<Description>'+"Change colour of text to red"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=blue</Name>';
            commands+='<Description>'+"Change colour of text to blue"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=green</Name>';
            commands+='<Description>'+"Change colour of text to green"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=yellow</Name>';
            commands+='<Description>'+"Change colour of text to yellow"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=orange</Name>';
            commands+='<Description>'+"Change colour of text to orange"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=pink</Name>';
            commands+='<Description>'+"Change colour of text to pink"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=purple</Name>';
            commands+='<Description>'+"Change colour of text to purple"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=lilac</Name>';
            commands+='<Description>'+"Change colour of text to lilac"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
    commands+='</ScriptCommands>';
    return commands;
}


RE: Help-command not working by ForestPlus! on 09-01-2006 at 08:44 AM

Well i imported the script, tried /all and the command did work...
I put in /all hello and pressed <enter> and the word hello came up in pale blue writing (Not sure whether it is ment to do that or not)
Does any other commands workl/don't work?


RE: Help-command not working by Jimbo on 09-01-2006 at 08:46 AM

well, when i type '/all hello' it comes up in pale blue(lilac) writing but only sends 'hello' to the active convo.


RE: Help-command not working by ForestPlus! on 09-01-2006 at 08:50 AM

Hmm... weird... the same to me when i tried to test it, but after i remove the script it does it fine...
Is that a script to change the colour of the writing?


RE: Help-command not working by Jimbo on 09-01-2006 at 08:51 AM

yes, you have to type /colour=xxxxx

there are only about 10 colours in it at the moment.
oh, by the way, it only changes the colour for one message


RE: Help-command not working by ForestPlus! on 09-01-2006 at 08:55 AM

That could be the problem, now i have removed the script, it doesn't only let me use the /all command, but the message i wrote (eg /all hello) now appears in my normal text writing (red)
This is something weird... it shouldn't interfere with other commands..


RE: Help-command not working by Jimbo on 09-01-2006 at 08:56 AM

thats what i thought, but for some trange reason it is, wonder why?


RE: Help-command not working by markee on 09-01-2006 at 08:58 AM

quote:
Originally posted by 134jimbodude
               
code:
...

default:
                case 'colour=lilac':
                    iOriginWnd.SendMessage("21"+params);
                    sMessage = '';
                    break;

...




Put default under the final break and it should all be fixed.  Any comand you write should change to the lilac colour otherwise I think.  I thought I changed this for you last time but obviously not, sorry.
RE: Help-command not working by Jimbo on 09-01-2006 at 09:00 AM

thanks markee

so, this would work?

code:

function OnEvent_ChatWndSendMessage(ChatWnd, sMessage) {

    if(sMessage.charAt(0) == "/"){
        return parseCommands(sMessage,ChatWnd);
    }
}
function parseCommands(sMessage,iOriginWnd){

    if (sMessage.charAt(0) == '/'){
        if(sMessage.charAt(1) == '/'){
            return sMessage;
        } else {
            var firstSpace = sMessage.search(' ');
            if(firstSpace == -1){
                var command = sMessage.toLowerCase().substr(1);
                var params = '';
            } else {
                var command = sMessage.toLowerCase().substr(1, firstSpace-1);
                var params = sMessage.substr(firstSpace+1);
            }
            if(params != "") { Debug.Trace("The command \"" + command + "\" with the parameters \"" + params + "\" has been parsed."); }
            else { Debug.Trace("The command \"" + command + "\" has been parsed."); }
            switch(command) {
                case 'colour=red':
                    iOriginWnd.SendMessage("4"+params);
                    sMessage = '';
                    break;
                case 'colour=blue':
                    iOriginWnd.SendMessage("12"+params);
                    sMessage = '';
                    break;
                case 'colour=green':
                    iOriginWnd.SendMessage("50"+params);
                    sMessage = '';
                    break;
                case 'colour=yellow':
                    iOriginWnd.SendMessage("8"+params);
                    sMessage = '';
                    break;
                case 'colour=purple':
                    iOriginWnd.SendMessage("6"+params);
                    sMessage = '';
                    break;
                case 'colour=pink':
                    iOriginWnd.SendMessage("13"+params);
                    sMessage = '';
                    break;
                case 'colour=orange':
                    iOriginWnd.SendMessage("36"+params);
                    sMessage = '';
                    break;
                case 'colour=lilac':
                    iOriginWnd.SendMessage("21"+params);
                    sMessage = '';
                    break;
default:
            }
        }
    }
    return sMessage;
}
function OnGetScriptCommands()
{
    var commands = '<ScriptCommands>';
        commands+='<Command>';
            commands+='<Name>colour=red</Name>';
            commands+='<Description>'+"Change colour of text to red"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=blue</Name>';
            commands+='<Description>'+"Change colour of text to blue"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=green</Name>';
            commands+='<Description>'+"Change colour of text to green"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=yellow</Name>';
            commands+='<Description>'+"Change colour of text to yellow"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=orange</Name>';
            commands+='<Description>'+"Change colour of text to orange"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=pink</Name>';
            commands+='<Description>'+"Change colour of text to pink"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=purple</Name>';
            commands+='<Description>'+"Change colour of text to purple"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
        commands+='<Command>';
            commands+='<Name>colour=lilac</Name>';
            commands+='<Description>'+"Change colour of text to lilac"+'</Description>';
            commands+='<Parameters>Message</Parameters>';
        commands+='</Command>';
    commands+='</ScriptCommands>';
    return commands;
}


RE: Help-command not working by markee on 09-01-2006 at 09:04 AM

I'm quite sure it should, though for making the code look nice you might want to indent the "default:" line so it is flush with the "case" lines :P


RE: Help-command not working by Jimbo on 09-01-2006 at 09:08 AM

Thanks, that works now
My WLM jammed up so thats why i didn't reply on there


Markee, could the code be edited easilly so that when i typed  '/colour=red' my font colour changed to red(not just for one message
RE: RE: Help-command not working by CookieRevised on 09-01-2006 at 09:16 AM

quote:
Originally posted by 134jimbodude
quote:
Originally posted by ForestLand
That could be the problem, now i have removed the script, it doesn't only let me use the /all command, but the message i wrote (eg /all hello) now appears in my normal text writing (red)
This is something weird... it shouldn't interfere with other commands..

thats what i thought, but for some trange reason it is, wonder why?
because you programmed it to do so...

markee is on the right track here.
code:
...
default:
                case 'colour=lilac':
                    iOriginWnd.SendMessage("21"+params);
                    sMessage = '';
                    break;
...
1) A case should not follow default.

2) Even for a default routine, the above code is not something you should do!

You actually remove every command message the user types with sMessage = ''; return sMessage;. This mean you interfear with everything the user types as a command, do not do that!

QuickFix: Remove the line with default: in it and you'll see that everything will work again as it is supposed to be.


EDIT: blah.... way too slow here



-------------------

quote:
Originally posted by 134jimbodude
could the code be edited easilly so that when i typed  '/colour=red' my font colour changed to red(not just for one message
yes, you can do that, but it wont be easy since there is no plus! command to set your font color and font style.

You can set it by directly altering a registry key. However, those specific registry keys ("IM Color" and "IM Format") are not read each time you send a message, they are only read out when you open a new conversation window. So in order to apply your new color (and font) you need to close the chat window, alter those registry settings and open your chat window again.


Another way is to actually change each and every line your script recieves by putting the Plus! color code in front of it (like you do now for the current line). But this is not only a dirty workaround, its also very likely it will interfear with other entered colors, scripts and commands. And it is also not compatible with people who don't have Plus!.


EDIT: try not to double post, edit your previous post instead if you whish to add anything.