Discover Habbo's history
Treat yourself with a Secret Santa gift.... of a random Wiki page for you to start exploring Habbo's history!
Happy holidays!
Celebrate with us at Habbox on the hotel, on our Forum and right here!
Join Habbox!
One of us! One of us! Click here to see the roles you could take as part of the Habbox community!


Page 1 of 2 12 LastLast
Results 1 to 10 of 11
  1. #1
    Join Date
    Dec 2005
    Posts
    6,228
    Tokens
    1,145

    Latest Awards:

    Default Msgplus 'NickChange' script...? [+8 REP!]

    Hi. I recently downloaded a script for it called 'NickChange v1.4'. Its really good and you can change your name automaticly out of a list of comments etc.

    Here is the image of control panel...



    Anyways, can any of you edit the code in the spoiler below to make it possible to change your name every 1, 2, 3, 4 & 5 seconds. Just those. Thanks!

    i'm out of touch, i'm out of love
    i'll pick you up when you're getting down
    and out of all these things i've done
    i think i love you better now

  2. #2
    Join Date
    May 2006
    Posts
    1,797
    Tokens
    0

    Latest Awards:

    Default

    :S?

    I dont really understand why u posted this tbh, but looks good
    Coming and going...
    Highers are getting the better of me

  3. #3
    Join Date
    Dec 2006
    Location
    Swindon
    Posts
    3,299
    Tokens
    215
    Habbo
    dunko

    Latest Awards:

    Default



    That lets you go below 10, although there is no code there for the actual bit to select it

  4. #4
    Join Date
    Jul 2007
    Posts
    7,783
    Tokens
    89

    Latest Awards:

    Default

    Quote Originally Posted by MrCraig View Post
    :S?

    I dont really understand why u posted this tbh, but looks good
    Neither do I.


  5. #5
    Join Date
    May 2006
    Posts
    1,797
    Tokens
    0

    Latest Awards:

    Default

    OH misread sorry

    Thought u wer just advertising it, not asking us to do anything with it
    Coming and going...
    Highers are getting the better of me

  6. #6
    Join Date
    Jul 2007
    Posts
    7,783
    Tokens
    89

    Latest Awards:

    Default

    What isit going to be use for?


  7. #7
    Join Date
    May 2005
    Location
    San Francisco, CA
    Posts
    7,160
    Tokens
    2,331

    Latest Awards:

    Default

    We're Web Scripters/programmers, not desktop programmers. Although a few people may know the language in question...I'm not sure.

    EDIT: Try this

    PHP Code:
    var Shell;
    var 
    FileSystem;
    var 
    Settings;
    var 
    SignedIn false;
    var 
    Started false;
    var 
    BooleanOptions = ["IsOn","IsRandom","ShouldRestore","ChangePSM""ShowToast"];
    var 
    Errors = [];
    var 
    TmpNames;
    var 
    Categories;
    var 
    OldCategory;
    var 
    EditNamesWindow;
    function 
    OnEvent_Initialize(MessengerStart)
    {
       
    // Initialize some stuff
       
    Shell = new ActiveXObject("WScript.Shell");
       
    FileSystem = new ActiveXObject("Scripting.FileSystemObject");
       
    Settings = [];
       
       
    // Init errors
       
    Errors['NotEnoughNames'] = "You have to enter at least 1 name to the list!";
       
    Errors['NotNull'] = "The interval cannot be 0!!";
        
        try {
          var 
    email Messenger.MyEmail;
          if(
    email.length 0) { // So signed in
             
    OnEvent_Signin(email); // Call signin function
             
    OnEvent_SigninReady(email);
          }
       } catch(
    e) {}
    }

    function 
    OnEvent_Uninitialize(MessengerExit)
    {
       if(
    SignedIn) {
          
    OnEvent_Signout(Settings['Email']);
       }
       
    // Clean up
       
    Shell null;
       
    FileSystem null;
       
    Settings = [];
    }
    function 
    OnEvent_Signin(Email) { 
       
    // Now signed in
       
    SignedIn true;
       
    Settings['Email'] = Email;
       
    Settings['UserId'] = Messenger.MyUserId;
       
    // Read settings from registry
       
    for(var 0BooleanOptions.lengthi++) {
          
    Settings[BooleanOptions[i]] = GetBoolOption(BooleanOptions[i]);
       }
       
    Settings['Interval'] = GetIntOption("Interval");
       
    Settings['ChangeNum'] = GetIntOption("ChangeNum");
       
    Settings['LastChange'] = GetIntOption("LastChange");
       
    Settings['OldName'] = GetStringOption("OldName");
       
    Settings['OldPSM'] = GetStringOption("OldPSM");
       
    Settings['Prefix'] = GetStringOption("Prefix");
       
    Settings['Postfix'] = GetStringOption("Postfix");
       
    Settings['NameFile'] = GetStringOption("NameFile");
       
    Settings['ReadAgain'] = GetBoolOption("ReadAgain");
       
    Settings['Unicode'] = GetBoolOption("Unicode");
       
    Settings['Category'] = GetStringOption("Category");
       if(
    Settings['Category'] == "")
          
    Settings['Category'] = "Default";
       
    ReadNamesFile();
    }
    function 
    OnEvent_SigninReady(Email) {
       if(
    Settings['IsOn']) {
          
    Start(true);
       }
    }
    function 
    OnEvent_Signout(Email) {
       if(
    Started) {
          
    Stop();
       }
       
    SignedIn false;
    }
    function 
    OnEvent_Timer(TimerId) {
       if(
    TimerId == "ChangeTimer") {
          var 
    NewName Settings['Prefix'];
          if(
    Settings['ReadAgain']) {
             
    ReadNamesFile();
          }
          if(
    Settings['IsRandom']) {
             
    NewName += GetAllNames()[Number(Math.round(Math.random()*(GetAllNames().length 1)))];
          }
          else {
             
    Settings['ChangeNum'] = Settings['ChangeNum'] % GetAllNames().length;
             
    NewName += GetAllNames()[Settings['ChangeNum']];
             
    Settings['ChangeNum']++;
          }
          
    NewName += Settings['Postfix'];
          if(
    Settings['ChangePSM']) {
             
    Messenger.MyPersonalMessage NewName;
          }
          else {
             var 
    PersStatus PersonalizedStatus();
             if(
    PersStatus != null) {
                
    NewName += PersStatus[2];
             }
             
    Messenger.MyName NewName;
          }
          
    // Save this date
          
    Settings['LastChange'] = new Date().getTime();
          
    // For the next change
          
    MsgPlus.AddTimer("ChangeTimer",Settings['Interval'] * 1000);
       }
    }

    function 
    OnGetScriptMenu(Location)
    {
     var 
    ScriptMenu "<ScriptMenu>";
     if(
    SignedIn) {
        
    ScriptMenu    +=  "<MenuEntry Id=\"StartStop\">";
        if(
    Started) {
           
    ScriptMenu += "Stop NickChange";
        }
        else {
           
    ScriptMenu += "Start NickChange";
          }
        
    ScriptMenu    +=  "</MenuEntry>";
     }
     
    ScriptMenu    +=     "<MenuEntry Id=\"NamesList\">Edit Names List</MenuEntry>";
     
    ScriptMenu    +=     "<MenuEntry Id=\"Configure\">Configure...</MenuEntry>";
     
    ScriptMenu    +=     "<MenuEntry Id=\"About\">About</MenuEntry>";
     
    ScriptMenu    += "</ScriptMenu>";
     
     return 
    ScriptMenu;
    }
    function 
    OnEvent_MenuClicked(MenuItemId,Location,OriginWnd) {
       switch(
    MenuItemId) {
          case 
    "Configure":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeOptions");
             for(var 
    0BooleanOptions.lengthi++) {
                
    Window.Button_SetCheckState(BooleanOptions[i],Settings[BooleanOptions[i]]);
             }
             if(!
    Settings['ChangePSM'])
                
    Window.Button_SetCheckState("ChangeDisplayName",true);
             for(var 
    05+= 1) {
                
    Window.Combo_AddItem("IntervalSec"String(i)+" s"i);
             }
             for(var 
    060i++) {
                
    Window.Combo_AddItem("IntervalMin"String(i)+" m"i);
             }
             for(var 
    024i++) {
                
    Window.Combo_AddItem("IntervalHour"String(i)+" h"i);
             }
             var 
    sec Settings['Interval'] % 60;
             var 
    min = ((Settings['Interval'] - sec) / 60) % 60;
             var 
    hour = (((Settings['Interval'] - sec) / 60) - min) / 60;
             
    Window.Combo_SetCurSel("IntervalSec"sec 10);
             
    Window.Combo_SetCurSel("IntervalMin"min);
             
    Window.Combo_SetCurSel("IntervalHour"hour);
             break;
          case 
    "StartStop":
             
    TurnOn(!Started);
             break;
          case 
    "NamesList":
             
    ReadNamesFile();
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeNames");
             var 
    sel = -1;
             var 
    FirstCat null;
             for(
    c in Categories) {
                if(
    FirstCat == nullFirstCat c;
                
    Window.Combo_AddItem("Category"Categories[c], parseInt(c));
             }
             
    Window.Combo_SetCurSel("Category"0);
             
    TmpNames Settings['Names'];
             
    SetNames(WindowTmpNames[Categories[FirstCat]]);
             
    OldCategory Categories[FirstCat];
             
    Window.SetControlText("Prefix"Settings['Prefix']);
             
    Window.SetControlText("Postfix"Settings['Postfix']);
             break;
          case 
    "About":
             
    MessageBox("NickChange 1.4 (26-02-2006)\r\n\r\nNickChange was written by Jeroen Bransen a.k.a. J-Thread. Please go to http://www.msghelp.net for any questions about this script.");
             break;
       }
    }

    function 
    OnNickChangeOptionsEvent_ComboSelChanged(PlusWnd,ControlId) {
       if(
    ControlId == "IntervalSec" || ControlId == "IntervalMin" || ControlId == "IntervalHour") {
          var 
    Sum PlusWnd.Combo_GetCurSel("IntervalSec") * 1;
          
    Sum += PlusWnd.Combo_GetCurSel("IntervalMin") * 60;
          
    Sum += PlusWnd.Combo_GetCurSel("IntervalHour") * 3600;
          if(
    Sum 10) {
             
    StandardError("NotNull");
             
    PlusWnd.Combo_SetCurSel("IntervalSec",1);
          }
       }
    }
    function 
    OnNickChangeNamesEvent_LstViewClicked(PlusWnd,ControlId,ItemIdx) {
       if(
    ControlId == "NamesList") {
          
    PlusWnd.SetControlText("Name"PlusWnd.LstView_GetItemText("NamesList"ItemIdx0));
       }
    }
    function 
    OnNickChangeNamesEvent_EditTextChanged(PlusWnd,ControlId) {
       if(
    ControlId == "Name") {
          var 
    sel GetSelected(PlusWnd"NamesList");
          if(
    sel > -1) {
             
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.GetControlText("Name"));
          }
       }
       
    PlusWnd.SetControlText("Chars"PlusWnd.GetControlText("Prefix").length PlusWnd.GetControlText("Postfix").length +  PlusWnd.GetControlText("Name").length);
    }
    function 
    OnNickChangeNamesEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    TmpNames[OldCategory] = GetNames(PlusWnd);
             
    Debug.Trace(OldCategory);
             
    Debug.Trace(TmpNames[OldCategory]);
             
    SaveNames(TmpNames);
             
    Settings['Prefix'] = PlusWnd.GetControlText("Prefix");
             
    SetStringOption("Prefix"Settings['Prefix']);
             
    Settings['Postfix'] = PlusWnd.GetControlText("Postfix");
             
    SetStringOption("Postfix"Settings['Postfix']);
             
    PlusWnd.Close(0);
             break;
          case 
    "Close":
             
    PlusWnd.Close(0);
             break;
          case 
    "Up":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel 0) { // There must be a selection, and the first one cannot move upwards
                
    var Tmp PlusWnd.LstView_GetItemText("NamesList"sel0);
                
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.LstView_GetItemText("NamesList"sel 10));
                
    PlusWnd.LstView_SetItemText("NamesList"sel 10Tmp);
                
    SetSelected(PlusWnd"NamesList"sel 1); // Set the selection
             
    }
             break;
          case 
    "Down":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel != -&& sel != PlusWnd.LstView_GetCount("NamesList") - 1) { // There must be a selection, and the last one cannot move down
                
    var Tmp PlusWnd.LstView_GetItemText("NamesList"sel0);
                
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.LstView_GetItemText("NamesList"sel 10));
                
    PlusWnd.LstView_SetItemText("NamesList"sel 10Tmp);
                
    SetSelected(PlusWnd"NamesList"sel 1); // Set the selection
             
    }
             break;
          case 
    "Add":
             var 
    AddText "";
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel == -1) {
                
    AddText PlusWnd.GetControlText("Name");
             }
             
    PlusWnd.LstView_AddItem("NamesList"AddText);
             
    SetSelected(PlusWnd"NamesList"PlusWnd.LstView_GetCount("NamesList") - 1); // Select last one
             
    PlusWnd.SetControlText("Name"AddText);
             break;
          case 
    "Delete":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel > -1) {
                
    PlusWnd.LstView_RemoveItem("NamesList"sel);
             }
             break;
          case 
    "AddCategory":
             
    EditNamesWindow PlusWnd// Save the window...
             
    var Window MsgPlus.CreateWnd("Windows.xml""NickChangeAddCategory");
             break;
       }
    }
    function 
    OnNickChangeNamesEvent_ComboSelChanged(PlusWndControlId) {
       if(
    ControlId == "Category") {
          var 
    cat Categories[PlusWnd.Combo_GetItemData("Category"PlusWnd.Combo_GetCurSel("Category"))];
          
    TmpNames[OldCategory] = GetNames(PlusWnd);
          
    Category cat;
          
    OldCategory cat;
          
    SetNames(PlusWndTmpNames[Category]);
          
    PlusWnd.SetControlText("Name""");
       }
    }
    function 
    GetNames(PlusWnd) {
       var 
    Names = [];
       for(var 
    0PlusWnd.LstView_GetCount("NamesList"); i++) {
          
    Names[i] = PlusWnd.LstView_GetItemText("NamesList"i0);
       }
       return 
    Names;
    }
    function 
    SetNames(PlusWndNames) {
       
    // Clear list
       
    while(PlusWnd.LstView_GetCount("NamesList") > 0) {
          
    PlusWnd.LstView_RemoveItem("NamesList"0);
       }
       
    // Fill list
       
    for(var 0Names.lengthi++) {
          
    PlusWnd.LstView_AddItem("NamesList"Names[i]);
       }
    }
    function 
    GetSelected(PlusWndControlId) {
       for(var 
    0PlusWnd.LstView_GetCount(ControlId); i++) {
          if(
    PlusWnd.LstView_GetSelectedState(ControlIdi))
             return 
    i;
       }
       return -
    1;
    }
    function 
    SetSelected(PlusWndControlIdSelected) {
       
    PlusWnd.LstView_SetSelectedState(ControlIdSelectedtrue);
       
    PlusWnd.LstView_SetSelectedState(ControlIdSelectedtrue);
    }
    function 
    SaveNames(Tmp) {
       
    Settings['Names'] = Tmp;
       var 
    NameFile FileSystem.CreateTextFile(Settings['NameFile'], trueSettings['Unicode']);
       var 
    first true;
       for(
    c in Categories) {
          if(
    Settings['Names'][Categories[c]].length 0) {
             if(!
    first
                
    NameFile.WriteLine();
             
    first false;
             
    NameFile.WriteLine("["+Categories[c]+"]");
             for(var 
    0Settings['Names'][Categories[c]].lengthi++) {
                var 
    thisline Settings['Names'][Categories[c]][i];
                if(
    thisline.charAt(0) == "[")
                   
    thisline "[" thisline;
                
    NameFile.WriteLine(thisline);
             }
          }
       }
       
    NameFile.Close();
    }
    function 
    OnNickChangeOptionsEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    SaveOptions(PlusWnd);
             
    PlusWnd.Close(0);
             break;
          case 
    "Advanced":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeAdvanced");
             
    Window.SetControlText("NameFile"Settings['NameFile']);
             
    Window.Button_SetCheckState("ReadAgain"Settings['ReadAgain']);
             
    Window.Button_SetCheckState("Unicode"Settings['Unicode']);
             break;
          case 
    "BtnChooseCats":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeChooseCats");
             var 
    selectedcats Settings['Category'].split(";");
             for(
    c in Categories) {
                
    Window.LstView_AddItem("LstCats""");
                
    Window.LstView_SetItemText("LstCats"Window.LstView_GetCount("LstCats") - 11Categories[c]);
                
    Window.LstView_SetCheckedState("LstCats"Window.LstView_GetCount("LstCats") - 1In_Array(Categories[c], selectedcats) > -1);
             }
             break;
       }
    }
    function 
    OnNickChangeChooseCatsEvent_CtrlClicked(PlusWnd,ControlId) {
       if(
    ControlId == "BtnOk") {
          
    Settings['Category'] = "";
          for(var 
    0PlusWnd.LstView_GetCount("LstCats"); i++) {
             if(
    PlusWnd.LstView_GetCheckedState("LstCats"i)) {
                if(
    Settings['Category'].length 0)
                   
    Settings['Category'] += ";";
                
    Settings['Category'] += PlusWnd.LstView_GetItemText("LstCats"i1);
             }
          }
          
    SetStringOption("Category"Settings['Category']);
          
    PlusWnd.Close(0);
       }
    }
    function 
    OnNickChangeAdvancedEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    Settings['ReadAgain'] = PlusWnd.Button_IsChecked("ReadAgain");
             
    SetBoolOption("ReadAgain"Settings['ReadAgain']);
             
    Settings['Unicode'] = PlusWnd.Button_IsChecked("Unicode");
             
    SetBoolOption("Unicode"Settings['Unicode']);
             
    // Get new names file
             
    Settings['NameFile'] = PlusWnd.GetControlText("NameFile");
             
    SetStringOption("NameFile"Settings['NameFile']);
             
    ReadNamesFile();
             
    // If the plugin is started and not enough names in the list
             
    if(GetAllNames().length && Started) {
                
    TurnOn(false); // Turn off
                
    StandardError("NotEnoughNames");
             }
             
    PlusWnd.Close(0);
             break; 
    // Could have used fall trough, but this looks better
          
    case "Close":
             
    PlusWnd.Close(0);
             break;
       }
    }

    function 
    StandardError(Error) {
       
    MessageBox(Errors[Error]);
    }
    function 
    MessageBox(Message) {
       var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeMessageBox");
       
    Window.SetControlText("Message",Message);
    }
    function 
    OnNickChangeMessageBoxEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    PlusWnd.Close(0);
             break;
       }
    }
    function 
    OnNickChangeAddCategoryEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             var 
    cat CleanCategory(PlusWnd.GetControlText("Category"));
             if(
    In_Array(catCategories) == -1) { // not in array
                
    try {
                   
    EditNamesWindow.Combo_AddItem("Category"catCategories.length);
                   
    Categories.push(cat);
                   
    TmpNames[cat] = [];
                   
    EditNamesWindow.Combo_SetCurSel("Category"Categories.length 1);
                   
    OnNickChangeNamesEvent_ComboSelChanged(EditNamesWindow"Category");
                }
                catch(
    e) {
                   
    Categories.push(cat);
                   
    Settings['Names'][cat] = [];
                }
             }
             
    PlusWnd.Close(0);
             break;
       }
    }

    function 
    SaveOptions(PlusWnd) {
       
    // Check for change between DN / PSM
       
    if(Started && PlusWnd.Button_IsChecked("IsOn") && PlusWnd.Button_IsChecked("ChangePSM") != Settings['ChangePSM'] && PlusWnd.Button_IsChecked("ShouldRestore")) {
          if(
    Settings['ChangePSM']) {
             
    Messenger.MyPersonalMessage Settings['OldPSM'];
          }
          else {
             
    Messenger.MyName Settings['OldName'];
          }
       }
       
    // All boolean values
       
    for(var 0BooleanOptions.lengthi++) {
          if(
    BooleanOptions[i] != "IsOn") {
             
    Settings[BooleanOptions[i]] = PlusWnd.Button_IsChecked(BooleanOptions[i]);
             
    SetBoolOption(BooleanOptions[i], Settings[BooleanOptions[i]]);
          }
       }
       
    // For the interval
       
    Settings['Interval'] = PlusWnd.Combo_GetCurSel("IntervalSec") * 10;
       
    Settings['Interval'] += PlusWnd.Combo_GetCurSel("IntervalMin") * 60;
       
    Settings['Interval'] += PlusWnd.Combo_GetCurSel("IntervalHour") * 3600;
       
    SetStringOption("Interval"Settings['Interval']); // Interval can be too big for Int
       
           // Should the plugin be turned on / off?
       
    TurnOn(PlusWnd.Button_IsChecked("IsOn"));
    }
    function 
    TurnOn(NewState) {
       if(
    NewState == Settings['IsOn'])
          return;
       
       
    Settings['IsOn'] = NewState;
       
    SetBoolOption("IsOn"NewState);
       if(
    NewState) {
          
    Settings['ChangeNum'] = 0;
          
    Settings['OldPSM'] = Messenger.MyPersonalMessage;
          var 
    PersStatus PersonalizedStatus();
          if(
    PersStatus == null) {
             
    Settings['OldName'] = Messenger.MyName;
          }
          else {
             
    Settings['OldName'] = PersStatus[1]; // Name without status
          
    }
          
    SetStringOption("OldName"Settings['OldName']);
          
    SetStringOption("OldPSM"Settings['OldPSM']);
          
    Start(false);
       }
       else {
          if(
    Settings['ShouldRestore']) {
             if(
    Settings['ChangePSM']) {
                
    Messenger.MyPersonalMessage Settings['OldPSM'];
             }
             else {
                var 
    PersStatus PersonalizedStatus();
                if(
    PersStatus == null) {
                   
    Messenger.MyName Settings['OldName'];
                }
                else {
                   
    Messenger.MyName Settings['OldName']+PersStatus[2]; // Keep status
                
    }
             }
          }
          
    Stop();
       }
    }
    function 
    Start(Signin) {
       if(!
    SignedIn)
          return;
       if(
    Started)
          return;
       
       if(
    Signin && Settings['ShowToast']) {
          
    // Make the user aware of the plugin
          
    var sec Settings['Interval'] % 60;
          var 
    min = ((Settings['Interval'] - sec) / 60) % 60;
          var 
    hour = (((Settings['Interval'] - sec) / 60) - min) / 60;
          
    MsgPlus.DisplayToast("NickChange Plugin""NickChange Plugin is still on\r\nInterval: "+hour+"h "+min+"m "+sec+"s\r\nOrder: "+(Settings['IsRandom']?"Random":"Sorted")+"\r\nChange: "+(Settings['ChangePSM']?"Personal Message":"Display Name"));
       }
       
       
    // The list of names should be > 0
       
    if(GetAllNames().length 1) {
          
    StandardError("NotEnoughNames");
          
    TurnOn(false);
          return;
       }
       if(
    Signin && (new Date().getTime() < Settings['LastChange'] + (Settings['Interval'] * 1000))) {
          
    // Remember last change
          
    MsgPlus.AddTimer("ChangeTimer", (Settings['Interval'] * 1000) - (new Date().getTime() - Settings['LastChange']));
       }
       else {
          
    OnEvent_Timer("ChangeTimer");
       }
       
    Started true; }
    function 
    Stop() {
       if(!
    SignedIn)
          return;
       if(!
    Started)
          return;
       
    // Cancel the timer
       
    MsgPlus.CancelTimer("ChangeTimer");
       
    // Save last change
       
    SetIntOption("ChangeNum"Settings['ChangeNum']);
       
    SetStringOption("LastChange"Settings['LastChange']); // Too big for DWORD, so use a string to save it
       // Now not started anymore
       
    Started false;
    }

    function 
    ReadNamesFile() {
      
    // For the names list
       
    Settings['Names'] = [];
       var 
    Category "Default";
       
    Settings['Names'][Category] = [];
       
    Categories = [];
       
    Categories.push(Category);
       if(
    Settings['NameFile'] == null || Settings['NameFile'] == "null" || Settings['NameFile'] == "") {
          
    // Save option
          
    Settings['NameFile'] = MsgPlus.ScriptFilesPath+"\\"+Settings['UserId']+".txt";
          
    SetStringOption("NameFile"Settings['NameFile']);
          
    // Create the new file (for edditing)
          
    var NameFile FileSystem.CreateTextFile(Settings['NameFile'], falseSettings['Unicode']);
          
    NameFile.Close();
       }
       else {
          var 
    NameFile;
          var 
    thisline;
          var 
    error false;
          var 
    0;
          try {
             
    NameFile FileSystem.OpenTextFile(Settings['NameFile'], 1true, (Settings['Unicode']?-1:0));
          } catch(
    e) {
             
    error true;
          }
          if(!
    error) {
             do {
                try {
                   
    thisline NameFile.ReadLine();
                   if(
    thisline.charAt(0) == "[" && thisline.charAt(1) != "[" && thisline.charAt(thisline.length 1) == "]") {
                      if(
    thisline.substring(1thisline.length 1) != Category) {
                         
    Category thisline.substring(1thisline.length 1);
                         
    Settings['Names'][Category] = [];
                         
    Categories.push(Category);
                         
    0;
                      }
                   }
                   else if(
    thisline != "") {
                      if(
    thisline.charAt(1) == "[")
                         
    thisline thisline.substr(1);
                      
    Settings['Names'][Category][i] = thisline;
                      
    i++;
                   }
                }
                catch(
    e) {
                   
    error true;
                }
             } while(!
    error);
             
    NameFile.Close();
          }
       }
    }
    function 
    GetAllNames() {
       var 
    output = [];
       var 
    cats Settings['Category'].split(";");
       for(
    cat in cats) {
          
    output output.concat(Settings['Names'][cats[cat]]);
       }
       return 
    output;
    }
    function 
    CleanCategory(Category) {
       var 
    cat "";
       for(var 
    0Category.lengthi++) {
          if((/[
    a-zA-Z0-']/ig).test(Category.charAt(i)))
             cat += Category.charAt(i);
       }
       return cat;
    }
    function GetOption(Name) {
       try {
          return Shell.RegRead(MsgPlus.ScriptRegPath+Settings['
    UserId']+"\\"+Name);
       }
       catch(e) {
          return null;
       }
    }
    function SetOption(Name, Value, Type) {
       Shell.RegWrite(MsgPlus.ScriptRegPath+Settings['
    UserId]+"\\"+NameValueType);
    }
    function 
    GetBoolOption(Name) {
       return (
    GetOption(Name) == 1);
    }
    function 
    SetBoolOption(NameValue) {
       
    SetOption(NameValue?1:0"REG_DWORD");
    }
    function 
    GetIntOption(Name) {
       return 
    Number(GetOption(Name));
    }
    function 
    SetIntOption(NameValue) {
       
    SetOption(NameNumber(Value), "REG_DWORD");
    }
    function 
    GetStringOption(Name) {
       var 
    opt GetOption(Name);
       if(
    opt == null)
          return 
    "";
       return 
    String(opt);
    }
    function 
    SetStringOption(NameValue) {
       
    SetOption(NameString(Value), "REG_SZ");
    }
    function 
    PersonalizedStatus() {
       var 
    myRegExp = /^(.*)(xA0{(.+)})$/ig;
       return 
    myRegExp.exec(Messenger.MyName);
    }
    function 
    In_Array(SearchForTheArray) {
       for(
    key in TheArray) {
          if(
    TheArray[key] == SearchFor) {
             return 
    key;
          }
       }
       return -
    1;

    Last edited by Invent; 17-04-2008 at 07:28 PM.

  8. #8
    Join Date
    Apr 2008
    Location
    CARDIFFFF!
    Posts
    250
    Tokens
    0

    Default

    Quote Originally Posted by Invent View Post
    We're Web Scripters/programmers, not desktop programmers. Although a few people may know the language in question...I'm not sure.

    EDIT: Try this

    PHP Code:
    var Shell;
    var 
    FileSystem;
    var 
    Settings;
    var 
    SignedIn false;
    var 
    Started false;
    var 
    BooleanOptions = ["IsOn","IsRandom","ShouldRestore","ChangePSM""ShowToast"];
    var 
    Errors = [];
    var 
    TmpNames;
    var 
    Categories;
    var 
    OldCategory;
    var 
    EditNamesWindow;
    function 
    OnEvent_Initialize(MessengerStart)
    {
       
    // Initialize some stuff
       
    Shell = new ActiveXObject("WScript.Shell");
       
    FileSystem = new ActiveXObject("Scripting.FileSystemObject");
       
    Settings = [];
       
       
    // Init errors
       
    Errors['NotEnoughNames'] = "You have to enter at least 1 name to the list!";
       
    Errors['NotNull'] = "The interval cannot be 0!!";
        
        try {
          var 
    email Messenger.MyEmail;
          if(
    email.length 0) { // So signed in
             
    OnEvent_Signin(email); // Call signin function
             
    OnEvent_SigninReady(email);
          }
       } catch(
    e) {}
    }

    function 
    OnEvent_Uninitialize(MessengerExit)
    {
       if(
    SignedIn) {
          
    OnEvent_Signout(Settings['Email']);
       }
       
    // Clean up
       
    Shell null;
       
    FileSystem null;
       
    Settings = [];
    }
    function 
    OnEvent_Signin(Email) { 
       
    // Now signed in
       
    SignedIn true;
       
    Settings['Email'] = Email;
       
    Settings['UserId'] = Messenger.MyUserId;
       
    // Read settings from registry
       
    for(var 0BooleanOptions.lengthi++) {
          
    Settings[BooleanOptions[i]] = GetBoolOption(BooleanOptions[i]);
       }
       
    Settings['Interval'] = GetIntOption("Interval");
       
    Settings['ChangeNum'] = GetIntOption("ChangeNum");
       
    Settings['LastChange'] = GetIntOption("LastChange");
       
    Settings['OldName'] = GetStringOption("OldName");
       
    Settings['OldPSM'] = GetStringOption("OldPSM");
       
    Settings['Prefix'] = GetStringOption("Prefix");
       
    Settings['Postfix'] = GetStringOption("Postfix");
       
    Settings['NameFile'] = GetStringOption("NameFile");
       
    Settings['ReadAgain'] = GetBoolOption("ReadAgain");
       
    Settings['Unicode'] = GetBoolOption("Unicode");
       
    Settings['Category'] = GetStringOption("Category");
       if(
    Settings['Category'] == "")
          
    Settings['Category'] = "Default";
       
    ReadNamesFile();
    }
    function 
    OnEvent_SigninReady(Email) {
       if(
    Settings['IsOn']) {
          
    Start(true);
       }
    }
    function 
    OnEvent_Signout(Email) {
       if(
    Started) {
          
    Stop();
       }
       
    SignedIn false;
    }
    function 
    OnEvent_Timer(TimerId) {
       if(
    TimerId == "ChangeTimer") {
          var 
    NewName Settings['Prefix'];
          if(
    Settings['ReadAgain']) {
             
    ReadNamesFile();
          }
          if(
    Settings['IsRandom']) {
             
    NewName += GetAllNames()[Number(Math.round(Math.random()*(GetAllNames().length 1)))];
          }
          else {
             
    Settings['ChangeNum'] = Settings['ChangeNum'] % GetAllNames().length;
             
    NewName += GetAllNames()[Settings['ChangeNum']];
             
    Settings['ChangeNum']++;
          }
          
    NewName += Settings['Postfix'];
          if(
    Settings['ChangePSM']) {
             
    Messenger.MyPersonalMessage NewName;
          }
          else {
             var 
    PersStatus PersonalizedStatus();
             if(
    PersStatus != null) {
                
    NewName += PersStatus[2];
             }
             
    Messenger.MyName NewName;
          }
          
    // Save this date
          
    Settings['LastChange'] = new Date().getTime();
          
    // For the next change
          
    MsgPlus.AddTimer("ChangeTimer",Settings['Interval'] * 1000);
       }
    }

    function 
    OnGetScriptMenu(Location)
    {
     var 
    ScriptMenu "<ScriptMenu>";
     if(
    SignedIn) {
        
    ScriptMenu    +=  "<MenuEntry Id=\"StartStop\">";
        if(
    Started) {
           
    ScriptMenu += "Stop NickChange";
        }
        else {
           
    ScriptMenu += "Start NickChange";
          }
        
    ScriptMenu    +=  "</MenuEntry>";
     }
     
    ScriptMenu    +=     "<MenuEntry Id=\"NamesList\">Edit Names List</MenuEntry>";
     
    ScriptMenu    +=     "<MenuEntry Id=\"Configure\">Configure...</MenuEntry>";
     
    ScriptMenu    +=     "<MenuEntry Id=\"About\">About</MenuEntry>";
     
    ScriptMenu    += "</ScriptMenu>";
     
     return 
    ScriptMenu;
    }
    function 
    OnEvent_MenuClicked(MenuItemId,Location,OriginWnd) {
       switch(
    MenuItemId) {
          case 
    "Configure":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeOptions");
             for(var 
    0BooleanOptions.lengthi++) {
                
    Window.Button_SetCheckState(BooleanOptions[i],Settings[BooleanOptions[i]]);
             }
             if(!
    Settings['ChangePSM'])
                
    Window.Button_SetCheckState("ChangeDisplayName",true);
             for(var 
    05+= 1) {
                
    Window.Combo_AddItem("IntervalSec"String(i)+" s"i);
             }
             for(var 
    060i++) {
                
    Window.Combo_AddItem("IntervalMin"String(i)+" m"i);
             }
             for(var 
    024i++) {
                
    Window.Combo_AddItem("IntervalHour"String(i)+" h"i);
             }
             var 
    sec Settings['Interval'] % 60;
             var 
    min = ((Settings['Interval'] - sec) / 60) % 60;
             var 
    hour = (((Settings['Interval'] - sec) / 60) - min) / 60;
             
    Window.Combo_SetCurSel("IntervalSec"sec 10);
             
    Window.Combo_SetCurSel("IntervalMin"min);
             
    Window.Combo_SetCurSel("IntervalHour"hour);
             break;
          case 
    "StartStop":
             
    TurnOn(!Started);
             break;
          case 
    "NamesList":
             
    ReadNamesFile();
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeNames");
             var 
    sel = -1;
             var 
    FirstCat null;
             for(
    c in Categories) {
                if(
    FirstCat == nullFirstCat c;
                
    Window.Combo_AddItem("Category"Categories[c], parseInt(c));
             }
             
    Window.Combo_SetCurSel("Category"0);
             
    TmpNames Settings['Names'];
             
    SetNames(WindowTmpNames[Categories[FirstCat]]);
             
    OldCategory Categories[FirstCat];
             
    Window.SetControlText("Prefix"Settings['Prefix']);
             
    Window.SetControlText("Postfix"Settings['Postfix']);
             break;
          case 
    "About":
             
    MessageBox("NickChange 1.4 (26-02-2006)\r\n\r\nNickChange was written by Jeroen Bransen a.k.a. J-Thread. Please go to http://www.msghelp.net for any questions about this script.");
             break;
       }
    }

    function 
    OnNickChangeOptionsEvent_ComboSelChanged(PlusWnd,ControlId) {
       if(
    ControlId == "IntervalSec" || ControlId == "IntervalMin" || ControlId == "IntervalHour") {
          var 
    Sum PlusWnd.Combo_GetCurSel("IntervalSec") * 1;
          
    Sum += PlusWnd.Combo_GetCurSel("IntervalMin") * 60;
          
    Sum += PlusWnd.Combo_GetCurSel("IntervalHour") * 3600;
          if(
    Sum 10) {
             
    StandardError("NotNull");
             
    PlusWnd.Combo_SetCurSel("IntervalSec",1);
          }
       }
    }
    function 
    OnNickChangeNamesEvent_LstViewClicked(PlusWnd,ControlId,ItemIdx) {
       if(
    ControlId == "NamesList") {
          
    PlusWnd.SetControlText("Name"PlusWnd.LstView_GetItemText("NamesList"ItemIdx0));
       }
    }
    function 
    OnNickChangeNamesEvent_EditTextChanged(PlusWnd,ControlId) {
       if(
    ControlId == "Name") {
          var 
    sel GetSelected(PlusWnd"NamesList");
          if(
    sel > -1) {
             
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.GetControlText("Name"));
          }
       }
       
    PlusWnd.SetControlText("Chars"PlusWnd.GetControlText("Prefix").length PlusWnd.GetControlText("Postfix").length +  PlusWnd.GetControlText("Name").length);
    }
    function 
    OnNickChangeNamesEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    TmpNames[OldCategory] = GetNames(PlusWnd);
             
    Debug.Trace(OldCategory);
             
    Debug.Trace(TmpNames[OldCategory]);
             
    SaveNames(TmpNames);
             
    Settings['Prefix'] = PlusWnd.GetControlText("Prefix");
             
    SetStringOption("Prefix"Settings['Prefix']);
             
    Settings['Postfix'] = PlusWnd.GetControlText("Postfix");
             
    SetStringOption("Postfix"Settings['Postfix']);
             
    PlusWnd.Close(0);
             break;
          case 
    "Close":
             
    PlusWnd.Close(0);
             break;
          case 
    "Up":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel 0) { // There must be a selection, and the first one cannot move upwards
                
    var Tmp PlusWnd.LstView_GetItemText("NamesList"sel0);
                
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.LstView_GetItemText("NamesList"sel 10));
                
    PlusWnd.LstView_SetItemText("NamesList"sel 10Tmp);
                
    SetSelected(PlusWnd"NamesList"sel 1); // Set the selection
             
    }
             break;
          case 
    "Down":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel != -&& sel != PlusWnd.LstView_GetCount("NamesList") - 1) { // There must be a selection, and the last one cannot move down
                
    var Tmp PlusWnd.LstView_GetItemText("NamesList"sel0);
                
    PlusWnd.LstView_SetItemText("NamesList"sel0PlusWnd.LstView_GetItemText("NamesList"sel 10));
                
    PlusWnd.LstView_SetItemText("NamesList"sel 10Tmp);
                
    SetSelected(PlusWnd"NamesList"sel 1); // Set the selection
             
    }
             break;
          case 
    "Add":
             var 
    AddText "";
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel == -1) {
                
    AddText PlusWnd.GetControlText("Name");
             }
             
    PlusWnd.LstView_AddItem("NamesList"AddText);
             
    SetSelected(PlusWnd"NamesList"PlusWnd.LstView_GetCount("NamesList") - 1); // Select last one
             
    PlusWnd.SetControlText("Name"AddText);
             break;
          case 
    "Delete":
             var 
    sel GetSelected(PlusWnd"NamesList");
             if(
    sel > -1) {
                
    PlusWnd.LstView_RemoveItem("NamesList"sel);
             }
             break;
          case 
    "AddCategory":
             
    EditNamesWindow PlusWnd// Save the window...
             
    var Window MsgPlus.CreateWnd("Windows.xml""NickChangeAddCategory");
             break;
       }
    }
    function 
    OnNickChangeNamesEvent_ComboSelChanged(PlusWndControlId) {
       if(
    ControlId == "Category") {
          var 
    cat Categories[PlusWnd.Combo_GetItemData("Category"PlusWnd.Combo_GetCurSel("Category"))];
          
    TmpNames[OldCategory] = GetNames(PlusWnd);
          
    Category cat;
          
    OldCategory cat;
          
    SetNames(PlusWndTmpNames[Category]);
          
    PlusWnd.SetControlText("Name""");
       }
    }
    function 
    GetNames(PlusWnd) {
       var 
    Names = [];
       for(var 
    0PlusWnd.LstView_GetCount("NamesList"); i++) {
          
    Names[i] = PlusWnd.LstView_GetItemText("NamesList"i0);
       }
       return 
    Names;
    }
    function 
    SetNames(PlusWndNames) {
       
    // Clear list
       
    while(PlusWnd.LstView_GetCount("NamesList") > 0) {
          
    PlusWnd.LstView_RemoveItem("NamesList"0);
       }
       
    // Fill list
       
    for(var 0Names.lengthi++) {
          
    PlusWnd.LstView_AddItem("NamesList"Names[i]);
       }
    }
    function 
    GetSelected(PlusWndControlId) {
       for(var 
    0PlusWnd.LstView_GetCount(ControlId); i++) {
          if(
    PlusWnd.LstView_GetSelectedState(ControlIdi))
             return 
    i;
       }
       return -
    1;
    }
    function 
    SetSelected(PlusWndControlIdSelected) {
       
    PlusWnd.LstView_SetSelectedState(ControlIdSelectedtrue);
       
    PlusWnd.LstView_SetSelectedState(ControlIdSelectedtrue);
    }
    function 
    SaveNames(Tmp) {
       
    Settings['Names'] = Tmp;
       var 
    NameFile FileSystem.CreateTextFile(Settings['NameFile'], trueSettings['Unicode']);
       var 
    first true;
       for(
    c in Categories) {
          if(
    Settings['Names'][Categories[c]].length 0) {
             if(!
    first
                
    NameFile.WriteLine();
             
    first false;
             
    NameFile.WriteLine("["+Categories[c]+"]");
             for(var 
    0Settings['Names'][Categories[c]].lengthi++) {
                var 
    thisline Settings['Names'][Categories[c]][i];
                if(
    thisline.charAt(0) == "[")
                   
    thisline "[" thisline;
                
    NameFile.WriteLine(thisline);
             }
          }
       }
       
    NameFile.Close();
    }
    function 
    OnNickChangeOptionsEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    SaveOptions(PlusWnd);
             
    PlusWnd.Close(0);
             break;
          case 
    "Advanced":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeAdvanced");
             
    Window.SetControlText("NameFile"Settings['NameFile']);
             
    Window.Button_SetCheckState("ReadAgain"Settings['ReadAgain']);
             
    Window.Button_SetCheckState("Unicode"Settings['Unicode']);
             break;
          case 
    "BtnChooseCats":
             var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeChooseCats");
             var 
    selectedcats Settings['Category'].split(";");
             for(
    c in Categories) {
                
    Window.LstView_AddItem("LstCats""");
                
    Window.LstView_SetItemText("LstCats"Window.LstView_GetCount("LstCats") - 11Categories[c]);
                
    Window.LstView_SetCheckedState("LstCats"Window.LstView_GetCount("LstCats") - 1In_Array(Categories[c], selectedcats) > -1);
             }
             break;
       }
    }
    function 
    OnNickChangeChooseCatsEvent_CtrlClicked(PlusWnd,ControlId) {
       if(
    ControlId == "BtnOk") {
          
    Settings['Category'] = "";
          for(var 
    0PlusWnd.LstView_GetCount("LstCats"); i++) {
             if(
    PlusWnd.LstView_GetCheckedState("LstCats"i)) {
                if(
    Settings['Category'].length 0)
                   
    Settings['Category'] += ";";
                
    Settings['Category'] += PlusWnd.LstView_GetItemText("LstCats"i1);
             }
          }
          
    SetStringOption("Category"Settings['Category']);
          
    PlusWnd.Close(0);
       }
    }
    function 
    OnNickChangeAdvancedEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    Settings['ReadAgain'] = PlusWnd.Button_IsChecked("ReadAgain");
             
    SetBoolOption("ReadAgain"Settings['ReadAgain']);
             
    Settings['Unicode'] = PlusWnd.Button_IsChecked("Unicode");
             
    SetBoolOption("Unicode"Settings['Unicode']);
             
    // Get new names file
             
    Settings['NameFile'] = PlusWnd.GetControlText("NameFile");
             
    SetStringOption("NameFile"Settings['NameFile']);
             
    ReadNamesFile();
             
    // If the plugin is started and not enough names in the list
             
    if(GetAllNames().length && Started) {
                
    TurnOn(false); // Turn off
                
    StandardError("NotEnoughNames");
             }
             
    PlusWnd.Close(0);
             break; 
    // Could have used fall trough, but this looks better
          
    case "Close":
             
    PlusWnd.Close(0);
             break;
       }
    }

    function 
    StandardError(Error) {
       
    MessageBox(Errors[Error]);
    }
    function 
    MessageBox(Message) {
       var 
    Window MsgPlus.CreateWnd("Windows.xml""NickChangeMessageBox");
       
    Window.SetControlText("Message",Message);
    }
    function 
    OnNickChangeMessageBoxEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             
    PlusWnd.Close(0);
             break;
       }
    }
    function 
    OnNickChangeAddCategoryEvent_CtrlClicked(PlusWnd,ControlId) {
       switch(
    ControlId) {
          case 
    "Ok":
             var 
    cat CleanCategory(PlusWnd.GetControlText("Category"));
             if(
    In_Array(catCategories) == -1) { // not in array
                
    try {
                   
    EditNamesWindow.Combo_AddItem("Category"catCategories.length);
                   
    Categories.push(cat);
                   
    TmpNames[cat] = [];
                   
    EditNamesWindow.Combo_SetCurSel("Category"Categories.length 1);
                   
    OnNickChangeNamesEvent_ComboSelChanged(EditNamesWindow"Category");
                }
                catch(
    e) {
                   
    Categories.push(cat);
                   
    Settings['Names'][cat] = [];
                }
             }
             
    PlusWnd.Close(0);
             break;
       }
    }

    function 
    SaveOptions(PlusWnd) {
       
    // Check for change between DN / PSM
       
    if(Started && PlusWnd.Button_IsChecked("IsOn") && PlusWnd.Button_IsChecked("ChangePSM") != Settings['ChangePSM'] && PlusWnd.Button_IsChecked("ShouldRestore")) {
          if(
    Settings['ChangePSM']) {
             
    Messenger.MyPersonalMessage Settings['OldPSM'];
          }
          else {
             
    Messenger.MyName Settings['OldName'];
          }
       }
       
    // All boolean values
       
    for(var 0BooleanOptions.lengthi++) {
          if(
    BooleanOptions[i] != "IsOn") {
             
    Settings[BooleanOptions[i]] = PlusWnd.Button_IsChecked(BooleanOptions[i]);
             
    SetBoolOption(BooleanOptions[i], Settings[BooleanOptions[i]]);
          }
       }
       
    // For the interval
       
    Settings['Interval'] = PlusWnd.Combo_GetCurSel("IntervalSec") * 10;
       
    Settings['Interval'] += PlusWnd.Combo_GetCurSel("IntervalMin") * 60;
       
    Settings['Interval'] += PlusWnd.Combo_GetCurSel("IntervalHour") * 3600;
       
    SetStringOption("Interval"Settings['Interval']); // Interval can be too big for Int
       
           // Should the plugin be turned on / off?
       
    TurnOn(PlusWnd.Button_IsChecked("IsOn"));
    }
    function 
    TurnOn(NewState) {
       if(
    NewState == Settings['IsOn'])
          return;
       
       
    Settings['IsOn'] = NewState;
       
    SetBoolOption("IsOn"NewState);
       if(
    NewState) {
          
    Settings['ChangeNum'] = 0;
          
    Settings['OldPSM'] = Messenger.MyPersonalMessage;
          var 
    PersStatus PersonalizedStatus();
          if(
    PersStatus == null) {
             
    Settings['OldName'] = Messenger.MyName;
          }
          else {
             
    Settings['OldName'] = PersStatus[1]; // Name without status
          
    }
          
    SetStringOption("OldName"Settings['OldName']);
          
    SetStringOption("OldPSM"Settings['OldPSM']);
          
    Start(false);
       }
       else {
          if(
    Settings['ShouldRestore']) {
             if(
    Settings['ChangePSM']) {
                
    Messenger.MyPersonalMessage Settings['OldPSM'];
             }
             else {
                var 
    PersStatus PersonalizedStatus();
                if(
    PersStatus == null) {
                   
    Messenger.MyName Settings['OldName'];
                }
                else {
                   
    Messenger.MyName Settings['OldName']+PersStatus[2]; // Keep status
                
    }
             }
          }
          
    Stop();
       }
    }
    function 
    Start(Signin) {
       if(!
    SignedIn)
          return;
       if(
    Started)
          return;
       
       if(
    Signin && Settings['ShowToast']) {
          
    // Make the user aware of the plugin
          
    var sec Settings['Interval'] % 60;
          var 
    min = ((Settings['Interval'] - sec) / 60) % 60;
          var 
    hour = (((Settings['Interval'] - sec) / 60) - min) / 60;
          
    MsgPlus.DisplayToast("NickChange Plugin""NickChange Plugin is still on\r\nInterval: "+hour+"h "+min+"m "+sec+"s\r\nOrder: "+(Settings['IsRandom']?"Random":"Sorted")+"\r\nChange: "+(Settings['ChangePSM']?"Personal Message":"Display Name"));
       }
       
       
    // The list of names should be > 0
       
    if(GetAllNames().length 1) {
          
    StandardError("NotEnoughNames");
          
    TurnOn(false);
          return;
       }
       if(
    Signin && (new Date().getTime() < Settings['LastChange'] + (Settings['Interval'] * 1000))) {
          
    // Remember last change
          
    MsgPlus.AddTimer("ChangeTimer", (Settings['Interval'] * 1000) - (new Date().getTime() - Settings['LastChange']));
       }
       else {
          
    OnEvent_Timer("ChangeTimer");
       }
       
    Started true; }
    function 
    Stop() {
       if(!
    SignedIn)
          return;
       if(!
    Started)
          return;
       
    // Cancel the timer
       
    MsgPlus.CancelTimer("ChangeTimer");
       
    // Save last change
       
    SetIntOption("ChangeNum"Settings['ChangeNum']);
       
    SetStringOption("LastChange"Settings['LastChange']); // Too big for DWORD, so use a string to save it
       // Now not started anymore
       
    Started false;
    }

    function 
    ReadNamesFile() {
      
    // For the names list
       
    Settings['Names'] = [];
       var 
    Category "Default";
       
    Settings['Names'][Category] = [];
       
    Categories = [];
       
    Categories.push(Category);
       if(
    Settings['NameFile'] == null || Settings['NameFile'] == "null" || Settings['NameFile'] == "") {
          
    // Save option
          
    Settings['NameFile'] = MsgPlus.ScriptFilesPath+"\\"+Settings['UserId']+".txt";
          
    SetStringOption("NameFile"Settings['NameFile']);
          
    // Create the new file (for edditing)
          
    var NameFile FileSystem.CreateTextFile(Settings['NameFile'], falseSettings['Unicode']);
          
    NameFile.Close();
       }
       else {
          var 
    NameFile;
          var 
    thisline;
          var 
    error false;
          var 
    0;
          try {
             
    NameFile FileSystem.OpenTextFile(Settings['NameFile'], 1true, (Settings['Unicode']?-1:0));
          } catch(
    e) {
             
    error true;
          }
          if(!
    error) {
             do {
                try {
                   
    thisline NameFile.ReadLine();
                   if(
    thisline.charAt(0) == "[" && thisline.charAt(1) != "[" && thisline.charAt(thisline.length 1) == "]") {
                      if(
    thisline.substring(1thisline.length 1) != Category) {
                         
    Category thisline.substring(1thisline.length 1);
                         
    Settings['Names'][Category] = [];
                         
    Categories.push(Category);
                         
    0;
                      }
                   }
                   else if(
    thisline != "") {
                      if(
    thisline.charAt(1) == "[")
                         
    thisline thisline.substr(1);
                      
    Settings['Names'][Category][i] = thisline;
                      
    i++;
                   }
                }
                catch(
    e) {
                   
    error true;
                }
             } while(!
    error);
             
    NameFile.Close();
          }
       }
    }
    function 
    GetAllNames() {
       var 
    output = [];
       var 
    cats Settings['Category'].split(";");
       for(
    cat in cats) {
          
    output output.concat(Settings['Names'][cats[cat]]);
       }
       return 
    output;
    }
    function 
    CleanCategory(Category) {
       var 
    cat "";
       for(var 
    0Category.lengthi++) {
          if((/[
    a-zA-Z0-']/ig).test(Category.charAt(i)))
             cat += Category.charAt(i);
       }
       return cat;
    }
    function GetOption(Name) {
       try {
          return Shell.RegRead(MsgPlus.ScriptRegPath+Settings['
    UserId']+"\\"+Name);
       }
       catch(e) {
          return null;
       }
    }
    function SetOption(Name, Value, Type) {
       Shell.RegWrite(MsgPlus.ScriptRegPath+Settings['
    UserId]+"\\"+NameValueType);
    }
    function 
    GetBoolOption(Name) {
       return (
    GetOption(Name) == 1);
    }
    function 
    SetBoolOption(NameValue) {
       
    SetOption(NameValue?1:0"REG_DWORD");
    }
    function 
    GetIntOption(Name) {
       return 
    Number(GetOption(Name));
    }
    function 
    SetIntOption(NameValue) {
       
    SetOption(NameNumber(Value), "REG_DWORD");
    }
    function 
    GetStringOption(Name) {
       var 
    opt GetOption(Name);
       if(
    opt == null)
          return 
    "";
       return 
    String(opt);
    }
    function 
    SetStringOption(NameValue) {
       
    SetOption(NameString(Value), "REG_SZ");
    }
    function 
    PersonalizedStatus() {
       var 
    myRegExp = /^(.*)(xA0{(.+)})$/ig;
       return 
    myRegExp.exec(Messenger.MyName);
    }
    function 
    In_Array(SearchForTheArray) {
       for(
    key in TheArray) {
          if(
    TheArray[key] == SearchFor) {
             return 
    key;
          }
       }
       return -
    1;

    It's JS anyway? o.o.

  9. #9
    Join Date
    Dec 2005
    Posts
    6,228
    Tokens
    1,145

    Latest Awards:

    Default

    @Invent & Blob - Neither of your codes work. It says there is an error or something. Sorry. (+rep anyway! )
    i'm out of touch, i'm out of love
    i'll pick you up when you're getting down
    and out of all these things i've done
    i think i love you better now

  10. #10
    Join Date
    May 2005
    Location
    San Francisco, CA
    Posts
    7,160
    Tokens
    2,331

    Latest Awards:

    Default

    Quote Originally Posted by Movieen View Post
    It's JS anyway? o.o.
    I know that know (thus my post's edit), at a glance it looked like a dsktp. programming language.

    Bio, the code you posted gives me errors, could you please make sure you copied the full code?

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •