All pastes #447000 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-04-18 19:48 UTC
rendered paste body
 English (CA)  French  German
general pastebin - Miscellany - post number 446991
Stuff to Do

    * New Post
    * Upload a Post
    * Goto Newest
    * Search
    * Archives

Information

    * Site News
    * Get a Pastebin
    * Other Pastebins
    * What is This?
    * Features
    * Statistics
    * Comments
    * Polls

Recent Posts

    * Someone
      31 secs
    * Miscellany
      58 secs
    * Unnamed
      2 mins 9 secs
    * Mine
      2 mins 16 secs
    * Miscellany
      2 mins 56 secs
    * Unnamed
      3 mins 35 secs
    * Mine
      PHP Source
      3 mins 56 secs
    * Miscellany
      6 mins 2 secs
    * Something
      7 mins 10 secs
    * Someone
      8 mins 24 secs
    * Dracos
      9 mins 38 secs
    * Something
      10 mins 5 secs
    * Untitled
      11 mins 7 secs
    * Blackman
      13 mins 20 secs
    * Someone
      13 mins 47 secs

Post: Miscellany on Wednesday, April 18th, 2007 at 1:41:54pm MDT (57 secs ago)
This URL: http://pastebin.ca/446991
This post will expire in 4 mins 2 secs

   1.
      ; ##############################################
   2.
      ; # Start Idle Away Timer                      #
   3.
      ; ##############################################
   4.
      on *:start: if ($readini(Settings.ini,Away.Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
   5.
       
   6.
      ; ##############################################
   7.
      ; # Load Default Options                       #
   8.
      ; ##############################################
   9.
      on *:load: {
  10.
        if (!$readini(AwaySettings.ini,Config,NickEditType))      writeini AwaySettings.ini Config NickEditType Suffix
  11.
        if (!$readini(AwaySettings.ini,Config,NickPrefix))        writeini AwaySettings.ini Config NickPrefix Away|
  12.
        if (!$readini(AwaySettings.ini,Config,NickSuffix))        writeini AwaySettings.ini Config NickSuffix |Away
  13.
        if (!$readini(AwaySettings.ini,Config,NickSetTo))         writeini AwaySettings.ini Config NickSuffix Away
  14.
        if (!$readini(AwaySettings.ini,Config,AutoAway))          writeini AwaySettings.ini Config AutoAway off
  15.
        if (!$readini(AwaySettings.ini,Config,AutoAwayTime))      writeini AwaySettings.ini Config AutoAwayTime 900
  16.
        if (!$readini(AwaySettings.ini,Config,IdleSettings))      writeini AwaySettings.ini Config IdleSettings Suffix~|Idle~Auto away after %time minutes idle
  17.
        if (!$readini(AwaySettings.ini,Config,LeavingTime))       writeini AwaySettings.ini Config LeavingTime off
  18.
        if (!$readini(AwaySettings.ini,Config,LeavingTimeFormat)) writeini AwaySettings.ini Config LeavingTimeFormat HH:nn:ss
  19.
        if (!$readini(AwaySettings.ini,Config,TimeAway))          writeini AwaySettings.ini Config TimeAway off
  20.
        if (!$readini(AwaySettings.ini,Config,TimeAwayFormat))    writeini AwaySettings.ini Config TimeAwayFormat Short
  21.
        if (!$readini(AwaySettings.ini,Config,ARChannelMessage))  writeini AwaySettings.ini Config ARChannelMessage off
  22.
        if (!$readini(AwaySettings.ini,Config,ARPrivateMessage))  writeini AwaySettings.ini Config ARPrivateMessage off
  23.
        if (!$readini(AwaySettings.ini,Config,MsgChans))          writeini AwaySettings.ini Config MsgChans on
  24.
        if (!$readini(AwaySettings.ini,Config,MsgQueries))        writeini AwaySettings.ini Config MsgQueries off
  25.
        if (!$readini(AwaySettings.ini,Config,RespondHilights))   writeini AwaySettings.ini Config RespondHilights on
  26.
        if (!$readini(AwaySettings.ini,Config,RespondPM))         writeini AwaySettings.ini Config RespondPM on
  27.
        if (!$readini(AwaySettings.ini,Config,RespondNotice))     writeini AwaySettings.ini Config RespondNotice on
  28.
        echo -a 4>>> Successfully loaded $remove($script,$scriptdir) - Away System script by Urza
  29.
      }
  30.
      ; ##############################################
  31.
      ; # Remove Away if unloaded                    #
  32.
      ; ##############################################
  33.
      on *:unload: {
  34.
        disable #away
  35.
        unset %away.*
  36.
        hfree away.*.responses
  37.
        timerAway.Idlecheck off
  38.
      }
  39.
      ; ##############################################
  40.
      ; # Cancel Away on exit                        #
  41.
      ; ##############################################
  42.
      on *:exit: {
  43.
        disable #away
  44.
        unset %away.*
  45.
        timerAway.Idlecheck off
  46.
      }
  47.
      ; ##############################################
  48.
      ; # Popup Menus                                #
  49.
      ; ##############################################
  50.
      menu status,channel,query,menubar,@Away.Logs {
  51.
        -
  52.
        Away Settings
  53.
        .Open away options: Dialog $iif($dialog(away),-o,-m) away away
  54.
        .$iif($active == @Away.Logs,Close window):window -c $active
  55.
        . -
  56.
        . Set away $+ $chr(58) $iif($group(#away) == off,on,off): {
  57.
          if ($group(#away) == off) away $?="Enter away reason or leave black for default (if set)"
  58.
          else back
  59.
        }
  60.
        .-
  61.
        .$iif($group(#away) == on && %Away.Preset == 1,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,1),$style(2))) Preset 1 - $iif($readini(AwaySettings.ini,Presets,1),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,1),1,126)
  62.
        .$iif($group(#away) == on && %Away.Preset == 2,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,2),$style(2))) Preset 2 - $iif($readini(AwaySettings.ini,Presets,2),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,2),1,126)
  63.
        .$iif($group(#away) == on && %Away.Preset == 3,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,3),$style(2))) Preset 3 - $iif($readini(AwaySettings.ini,Presets,3),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,3),1,126)
  64.
        .$iif($group(#away) == on && %Away.Preset == 4,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,4),$style(2))) Preset 4 - $iif($readini(AwaySettings.ini,Presets,4),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,4),1,126)
  65.
        .$iif($group(#away) == on && %Away.Preset == 5,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,5),$style(2))) Preset 5 - $iif($readini(AwaySettings.ini,Presets,5),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,5),1,126)
  66.
        .$iif($group(#away) == on && %Away.Preset == 6,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,6),$style(2))) Preset 6 - $iif($readini(AwaySettings.ini,Presets,6),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,6),1,126)
  67.
        .$iif($group(#away) == on && %Away.Preset == 7,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,7),$style(2))) Preset 7 - $iif($readini(AwaySettings.ini,Presets,7),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,7),1,126)
  68.
      }
  69.
       
  70.
      ; ##############################################
  71.
      ; # Main Dialog                                #
  72.
      ; ##############################################
  73.
      dialog away {
  74.
        title Away System Settings
  75.
        size -1 -1 150 177
  76.
        option dbu
  77.
        tab "Basic Settings"                 100,0   0     150 156
  78.
        tab "Exceptions and Messaging"       200,0   0     150 156
  79.
        Box "Default Away Settings",         2,  4   15    142 45, tab 100
  80.
        text "Nick:",                        1,  8   28    12  10, tab 100
  81.
        combo                                3,  22  26    50  10, drop tab 100
  82.
        edit "",                             5,  75  26    50  10, tab 100
  83.
        button "?",                          6,  130 26    10  10, tab 100
  84.
        text "Default Away Message:",        24, 8   39    100 10, tab 100
  85.
        edit "",                             25, 8   47    117 10, autohs tab 100
  86.
        button "?",                          26, 130 47    10  10, tab 100
  87.
        box "Global Options"                 4,  4   62    142 92, tab 100
  88.
        check "A&uto Away After",            7,  12  71    50  10, tab 100
  89.
        edit "",                             8,  63  71    10  10, tab 100
  90.
        text "minutes.",                     9,  75  72.5  40  10, tab 100
  91.
        button "?",                          10, 130 71    10  10, tab 100
  92.
        button "options",                    27, 98  71    30  10, tab 100
  93.
        check "Show &Leaving Time?"          11, 12  85    60  10, tab 100
  94.
        edit ""                              12, 75  85    50  10, tab 100
  95.
        button "?",                          13, 130 85    10  10, tab 100
  96.
        check "Show &Time Away?"             14, 12  100   55  10, tab 100
  97.
        combo                                15, 75  100   50  10, drop tab 100
  98.
        button "?",                          16, 130 100   10  10, tab 100
  99.
        box "Auto Return"                    17, 7   115   136 35, tab 100
 100.
        text "Cancel away on:"               18, 12  125   80  10, tab 100
 101.
        check  "&Channel Message"            19, 60  124   50  10, tab 100
 102.
        check  "&Private Message"            20, 60  134   50  10, tab 100
 103.
        button "?",                          21, 130 134   10  10, tab 100
 104.
       
 105.
        ;Exception + messaging options:  - display only does nothing yet
 106.
        box "Messaging",                     30, 4   15   142  90, tab 200
 107.
        text "Send messages to:",            31, 8   26   50   10, tab 200
 108.
        check "All open channels"            32, 60  25   50   10, tab 200
 109.
        check "All open queries"             33, 60  35   50   10, tab 200
 110.
        button "?",                          34, 130 26   10   10, tab 200
 111.
        box "Response Messages",             35, 8   48   134  38, tab 200
 112.
        text "Respond to:",                  36, 12  56   50   10, tab 200
 113.
        check "Channel highlight",           37, 60  55   50   10, tab 200
 114.
        check "Private message",             38, 60  65   50   10, tab 200
 115.
        check "Private notice",              39, 60  75   50   10, tab 200
 116.
        button "?",                          40, 130 55   10   10, tab 200
 117.
        button "Get mIRC hilights",          42, 18  90   50   10, tab 200
 118.
        button "Modify Hilights",            43, 70  90   50   10, tab 200
 119.
        button "?",                          44, 130 90   10   10, tab 200
 120.
        box "Exceptions",                    45, 4   109  142  24, tab 200
 121.
        button "Modify Away System Exceptions"   46, 8   118  100  10, tab 200
 122.
        button "?",                          48, 130 118  10   10, tab 200
 123.
       
 124.
        button "Edit &Presets"               22, 12  159  60  15
 125.
        button "&Ok"                         23, 80  159  60  15, ok
 126.
      }
 127.
      ; ##############################################
 128.
      ; # Custom presets dialog                      #
 129.
      ; ##############################################
 130.
      dialog Custom.Aways {
 131.
        title Custom Away Messages
 132.
        size -1 -1 236 110
 133.
        option dbu
 134.
        box  "Custom Away Triggers"          1,  4   4  227 85
 135.
        text "Trigger",                      2,  16  12 30  10
 136.
        text "Nick Settings",                3,  50  12 50  10
 137.
        text "Away Message",                 4,  130 12 50  10
 138.
        list                                 5,  10  20 30  50
 139.
        list                                 6,  40  20 50  50
 140.
        list                                 7,  90  20 134 50, autohs
 141.
        button "Add",                        8,  10  70 50  15
 142.
        button "Edit",                       10, 65  70 50  15
 143.
        button "Delete",                     9,  120 70 50  15
 144.
        button "Clear",                      12, 175 70 50  15
 145.
        button "OK",                         11, 90  90 50  15, OK
 146.
       
 147.
      }
 148.
      ; ##############################################
 149.
      ; # Idle Away Settings + Help dialogs          #
 150.
      ; ##############################################
 151.
      dialog Idle.Away.Settings {
 152.
        title Idle Away Settings
 153.
        size -1 -1 120 85
 154.
        option dbu
 155.
        box "Idle away settings",           1, 4  4  112 55
 156.
        text "Nick Settings:",              2, 8  12 50  10
 157.
        combo                               3, 8  20 50  10, drop
 158.
        edit "",                            4, 62 20 50  10
 159.
        text "Idle away message:",          5, 8  35 50  10
 160.
        edit "",                            6, 8  43 104 10, autohs
 161.
        button "&Help"                      7, 5  65 50  15
 162.
        button "&Ok",                       8, 65 65 50  15, OK
 163.
      }
 164.
      Dialog Idle.Away.Help {
 165.
        title Away System Help
 166.
        size -1 -1 150 90
 167.
        option dbu
 168.
        box "Idle away help",           1, 4  4  142 60
 169.
        text "Idle away nick and automatic message settings work in the same way as the default away settings in the main dialog, except that they define the settings used when you are automatically set away from Idle"   2, 8  15  133 25
 170.
        text "you can use %time to refer to the time you must idle before being set as away",  3, 8  45  133 20                                                                                                                                               
 171.
        button "&Ok",                   4, 50 70 50 15, OK
 172.
      }
 173.
      ; ##############################################
 174.
      ; # Preset Settings + Help dialogs             #
 175.
      ; ##############################################
 176.
      dialog Preset.Settings {
 177.
        title Preset Settings
 178.
        size -1 -1 120 100
 179.
        option dbu
 180.
        box "Preset settings",              1,  4  4  112 70
 181.
        text "Trigger:",                    2,  8  14 50  10
 182.
        edit "",                            3,  30 13 50  10
 183.
        text "Nick Settings:",              4,  8  27 50  10
 184.
        combo                               5,  8  35 50  10, drop
 185.
        edit "",                            6,  62 35 50  10
 186.
        text "Away message:",               7,  8  50 50  10
 187.
        edit "",                            8,  8  58 104 10, autohs
 188.
        button "&Help"                      9,  5  80 50  15
 189.
        button "&Ok",                       10, 65 80 50  15, OK
 190.
      }
 191.
      Dialog Preset.Help {
 192.
        title Away System Help
 193.
        size -1 -1 150 90
 194.
        option dbu
 195.
        box "Presets help",             1, 4  4  142 60
 196.
        text "Preset nick and Away message settings work in the same way as the default away settings in the main dialog, except that they define the settings used for the preset you are creating"   2, 8  15  133 27
 197.
        text "To use a preset once you have created it simply type /Away TRIGGER",  3, 8  45  133 20                                                                                                                                               
 198.
        button "&Ok",                   4, 50 70 50 15, OK
 199.
      }
 200.
      ; ##############################################
 201.
      ; # Exceptions dialogs                         #
 202.
      ; ##############################################
 203.
      dialog Away.Exceptions {
 204.
        title Away System Exceptions
 205.
        size -1 -1 120 100
 206.
        option dbu
 207.
        box "Exceptions"         1,  4  4  112 75
 208.
        text "Networks"          2,  8  12  50 10, center
 209.
        list                     3,  8  19 50 58
 210.
        button "Add"             6,  61 20 50 10
 211.
        button "Delete"          7,  61 34 50 10
 212.
        button "Edit"            8,  61 49 50 10
 213.
        button "Clear"           9,  61 63 50 10
 214.
        button "OK"              10, 35 82 50 15, oks
 215.
      }
 216.
      dialog Away.AddException {
 217.
        title Add Exception
 218.
        size -1 -1 156 190
 219.
        option dbu
 220.
        box "Add Exception"                                                                              1,  4  4   148 165
 221.
        text "Network Name:"                                                                             2,  8  16  40  10
 222.
        edit ""                                                                                          3,  50 15  60  10
 223.
        text "If you are unsure of a network name you can type: //echo -a $network in mIRC to view it."  20, 8  30  130 15
 224.
        box "Exception scope"                                                                            4,  8  50  140 55
 225.
        Text "This exception affects:"                                                                   5,  12 60  55  10
 226.
        radio "Entire network"                                                                           6,  69 59  65  10
 227.
        radio "certain channels only"                                                                    7,  69 69  65  10
 228.
        Text "Enter Channels to be excepted, seperated by spaces."                                       8,  12 80  130 10
 229.
        edit ""                                                                                          9,  12 90  130 10
 230.
        box "Exception Options"                                                                          10, 8  110  140 55
 231.
        text "On this network:"                                                                          11, 12 120 45  10
 232.
        check "Do not change nick"                                                                       12, 55 120 55  10
 233.
        check "Do not send away messages"                                                                13, 55 130 80  10
 234.
        check "Do not send hilight responses"                                                            14, 55 140 80  10
 235.
        check "Do not send PM responses"                                                                 15, 55 150 80  10
 236.
        button "OK"                                                                                      16, 53 172 50  15, Ok
 237.
      }
 238.
       
 239.
      ; ##############################################
 240.
      ; # Help Dialogs                               #
 241.
      ; ##############################################
 242.
      dialog Away.Help.6 {
 243.
        title Away System Help
 244.
        size -1 -1 150 120
 245.
        option dbu
 246.
        box "Nick Settings Help",                                                                   1, 5  5   140 90
 247.
        text "Nick PREFIX: Adds the specified text to the FRONT of your nick when going away",      2, 8  15  133 20
 248.
        text "Nick SUFFIX: Adds the specified text to the END of your nick when going away",        3, 8  35  133 20
 249.
        text "Set to: Sets your nick to the specified nick when you set away",                      4, 9  55  133 20   
 250.
        text "Don’t Change: Means that you’re nick will not change when going away or coming back", 5, 8  75  133 20         
 251.
        button "OK",                                                                                7, 50 100 50 15, OK
 252.
      }
 253.
      dialog Away.Help.10 {
 254.
        title Away System Help
 255.
        size -1 -1 150 90
 256.
        option dbu
 257.
        box "Auto Away Help",                                                                                1, 5  5  140 60
 258.
        text "Enabling Auto-Away will automatically set you as away if you are idle for the specified time", 2, 8  15 134 20
 259.
        text "Time must be between 1 and 60 minutes",                                                        3, 8  35 134 20
 260.
        text "Options for settings Idle nick and message can be found by clicking the options button",       4, 8  45 134 20
 261.
        button "OK",                                                                                         5, 50 70 50 15, ok
 262.
      }
 263.
      dialog Away.Help.13 {
 264.
        title Away System Help
 265.
        size -1 -1 150 80
 266.
        option dbu
 267.
        box "Show Leaving Time Help",                                                                                                    1, 5 5 140 50
 268.
        text "Enabling 'Show Leaving Time' will display the time you went away in all your away messages in the specified Time Format",  2, 8 15 134 20
 269.
        button "Click Here for a list of codes used in time format",                                                                     3, 8 40 134 10
 270.
        button "OK",                                                                                                                     4, 50 60 50 15, ok
 271.
      }
 272.
      dialog Away.Help.16 {
 273.
        title Away System Help
 274.
        size -1 -1 150 90
 275.
        option dbu
 276.
        box "Show Time Away Help",                                                                                                         1, 5 5 140 60
 277.
        text "Enabling 'Show Time Away' will display how long you have been away in all your away messages in the specified Time Format",  2, 8 15 134 20
 278.
        text "Example of Short format: 5h 6m 10s"                                                                                          3, 8 40 134 10
 279.
        text "Example of Medium format: 5hrs 6mins 10secs"                                                                                 4, 8 48 134 10
 280.
        text "Example of long format: 5 hours 6 minutes 10 seconds"                                                                        5, 8 56 134 10
 281.
        button "OK",                                                                                                                       6, 50 70 50 15, ok
 282.
      }
 283.
      dialog Away.Help.21 {
 284.
        title Away System Help
 285.
        size -1 -1 150 65
 286.
        option dbu
 287.
        box "Automatic Return Help",                                                                                                    1, 5 5 140 35
 288.
        text "Enabling 'Automatic Return' will automatically bring you back from away if you send any Channel And/Or Private message",  2, 8 15 134 20
 289.
        button "OK",                                                                                                                    5, 50 45 50 15, ok
 290.
      }
 291.
      dialog Away.Help.26 {
 292.
        title Away System Help
 293.
        size -1 -1 150 55
 294.
        option dbu
 295.
        box "Default Message Help",                                                    1, 5  5  140 27
 296.
        text "If you do not enter a reason when going away this default will be used", 2, 8  15 134 20
 297.
        button "OK",                                                                   3, 50 35 50 15, ok
 298.
      }
 299.
      dialog Away.Help.34 {
 300.
        title Away System Help
 301.
        size -1 -1 150 60
 302.
        option dbu
 303.
        box "Message sending help",                                                                                                         1, 5  5  140 32
 304.
        text "These options refer to weather your away message will be sent to channels and/or Pm's (Queries) when leaving and returning.", 2, 8  15 134 20
 305.
        button "OK",                                                                                                                        3, 50 40 50 15, ok
 306.
      }
 307.
      dialog Away.Help.40 {
 308.
        title Away System Help
 309.
        size -1 -1 150 80
 310.
        option dbu
 311.
        box "Auto Response Help",                                                                                       1, 5  5  140 50
 312.
        text "These options refer to what actions will trigger an auto message alerting the person that you are away.", 2, 8  15 134 20
 313.
        text "Channel highlight is triggered whenever someone says a word that is in your hilights list",               3, 8  35 134 20
 314.
        button "OK",                                                                                                    4, 50 60 50  15, ok
 315.
      }
 316.
      dialog Away.Help.44 {
 317.
        title Away System Help
 318.
        size -1 -1 150 120
 319.
        option dbu
 320.
        box "Hilight help",                                                                                                                                                        1, 5  5  140 92
 321.
        text "'Hilight' occurs whenever somebody says a word that is in your hilights list.",                                                                                      2, 8  15 134 20
 322.
        text "Your away hilights determine what words, when said, will cause the script to notify the person that you are away, and log the message",                              3, 8  31 134 20
 323.
        text "If you have hilights set in mIRC you can click 'Get mIRC Hilights' to have the away system use these same hilights",                                                 4, 8  54 134 20
 324.
        text "You may also add or modify seperate ones using the 'Modify Hilights' button. Note that Identifiers such as $me (which refers to your current nick) are also allowed" 5, 8  75 134 20
 325.
        button "OK",                                                                                                                                                               6, 50 100 50  15, ok
 326.
      }
 327.
      dialog Away.Help.48 {
 328.
        title Away System Help
 329.
        size -1 -1 150 65
 330.
        option dbu
 331.
        box "Exceptions help",                                                                                                                        1, 5  5  140 35
 332.
        text "Exceptions allow you to specify networks/channels in which away messages are not sent, or networks in which your nick is not changed",  2, 8  15 134 25     
 333.
        button "OK",                                                                                                                                  3, 50 45 50  15, ok
 334.
      }
 335.
       
 336.
      dialog Away.Help.Time {
 337.
        title Away System Help
 338.
        size -1 -1 150 155
 339.
        option dbu
 340.
        box "Time Format Help",                                                   1, 5 5 140 120
 341.
        text "The following is a list of Codes that can be used in Time Formats", 2, 8 15 134 20
 342.
        box "Time Format Codes",                                                  3, 8 30 134 88
 343.
        list                                                                      4, 20 40 20 75
 344.
        list                                                                      5, 40 40 90 75
 345.
        button "OK",                                                              6, 50 130 50 15, ok
 346.
      }
 347.
       
 348.
       
 349.
      ; ##############################################
 350.
      ; # Dialog Initiation events                   #
 351.
      ; ##############################################
 352.
      ; ----- Populate Time help
 353.
      on *:dialog:Away.Help.Time:init:*: {
 354.
        did -a $dname 4 HH
 355.
        did -a $dname 5 Hours - 2 Digit 24 hour time - $time(HH)
 356.
        did -a $dname 4 H
 357.
        did -a $dname 5 Hours - 1 Digit 24 hour time - $time(H)
 358.
        did -a $dname 4 hh
 359.
        did -a $dname 5 Hours - 2 Digit 12 hour time - $time(hh)
 360.
        did -a $dname 4 h
 361.
        did -a $dname 5 Hours - 1 Digit 12 hour time - $time(h)
 362.
        did -a $dname 4 nn
 363.
        did -a $dname 5 Minutes - 2 Digit - $time(nn)
 364.
        did -a $dname 4 n
 365.
        did -a $dname 5 Minutes - 1 Digit - $time(n)
 366.
        did -a $dname 4 ss
 367.
        did -a $dname 5 Seconds - 2 Digit - $time(ss)
 368.
        did -a $dname 4 s
 369.
        did -a $dname 5 Seconds - 1 Digit - $time(s)
 370.
        did -a $dname 4 tt
 371.
        did -a $dname 5 am/pm - Lower case - $time(tt)
 372.
        did -a $dname 4 TT
 373.
        did -a $dname 5 AM/PM - Upper Case - $time(TT)
 374.
      }
 375.
      ; ----- Populate main dialog settings
 376.
      on *:dialog:away:init:*: {
 377.
        ;Tab 100 Controls
 378.
        did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Prefix,c) $dname 3 Prefix
 379.
        did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Suffix,c) $dname 3 Suffix
 380.
        did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Set to,c) $dname 3 Set to
 381.
        did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Don't Change,c) $dname 3 Don't Change
 382.
        if ($readini(AwaySettings.ini,Config,NickEditType) == Don't Change) did -m $dname 5
 383.
        if ($readini(AwaySettings.ini,Config,NickPrefix)) && ($did(away,3).seltext == Prefix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix)
 384.
        if ($readini(AwaySettings.ini,Config,NickSuffix)) && ($did(away,3).seltext == Suffix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix)
 385.
        if ($readini(AwaySettings.ini,Config,NickSetTo)) && ($did(away,3).seltext == Set To) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo)
 386.
        if ($readini(AwaySettings.ini,Config,AutoAway) == on) did -c $dname 7 | else did -m $dname 8
 387.
        if ($readini(AwaySettings.ini,Config,AutoAwayTime)) did -a $dname 8 $calc($ifmatch / 60) | else did -a $dname 8 900
 388.
        if ($readini(AwaySettings.ini,Config,LeavingTime) == on) did -c $dname 11                | else did -m $dname 12
 389.
        if ($readini(AwaySettings.ini,Config,LeavingTimeFormat)) did -a $dname 12 $ifmatch       | else did -a $dname 12 HH:nn:ss
 390.
        if ($readini(AwaySettings.ini,Config,TimeAway) == on) did -c $dname 14                   | else did -b $dname 15
 391.
        if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Short) did -ac $dname 15 Short   | else did -a $dname 15 Short
 392.
        if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Medium) did -ac $dname 15 Medium | else did -a $dname 15 Medium
 393.
        if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Long) did -ac $dname 15 Long     | else did -a $dname 15 Long
 394.
        if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) did -c $dname 19
 395.
        if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) did -c $dname 20
 396.
        if ($readini(AwaySettings.ini,Config,DefaultMessage)) did -a $dname 25 $ifmatch
 397.
        ;Tab 200 controls
 398.
        if ($readini(AwaySettings.ini,Config,MsgChans) == on) did -c $dname 32
 399.
        if ($readini(AwaySettings.ini,Config,MsgQueries) == on) did -c $dname 33
 400.
        if ($readini(AwaySettings.ini,Config,RespondHilights) == on) did -c $dname 37
 401.
        if ($readini(AwaySettings.ini,Config,RespondPM) == on) did -c $dname 38
 402.
        if ($readini(AwaySettings.ini,Config,RespondNotice) == on) did -c $dname 39
 403.
      }
 404.
      ; ----- Populate Custom presets list
 405.
      on *:dialog:Custom.Aways:init:*: {
 406.
        var %x = 1
 407.
        while (%x <= 7) {
 408.
          if ($readini(AwaySettings.ini,Presets,%x)) {
 409.
            did -a $dname 5 $gettok($v1,1,126)
 410.
            did -a $dname 6 $gettok($v1,2,126)
 411.
            did -a $dname 7 $gettok($v1,3-,126)
 412.
          }
 413.
          else halt
 414.
          inc %x
 415.
        }
 416.
      }
 417.
      ; ----- Populate Idle Away Settings
 418.
      on *:dialog:Idle.Away.Settings:init:*: {
 419.
        tokenize 126 $readini(AwaySettings.ini,n,Config,IdleSettings)
 420.
        did -a $+ $iif($1 == Prefix,c) $dname 3 Prefix
 421.
        did -a $+ $iif($1 == Suffix,c) $dname 3 Suffix
 422.
        did -a $+ $iif($1 == Set to,c) $dname 3 Set to
 423.
        did -a $+ $iif($1 == Don't Change,c) $dname 3 Don't Change
 424.
        if ($1 == Don't Change) did -m $dname 5
 425.
        else did -ra $dname 4 $2
 426.
        if ($3) did -a $dname 6 $3-
 427.
      }
 428.
      ; ----- Populate Preset settings
 429.
      on *:dialog:Away.Preset:init:*: {
 430.
        if (%Away.EditPreset) {
 431.
          var %pre = %Away.EditPreset, %trigger = $did(Custom.Aways,5).seltext
 432.
          var %edittype = $gettok($did(Custom.Aways,6).seltext,1,58), %nickedit = $gettok($did(Custom.Aways,6).seltext,2,58)
 433.
          var %reason = $did(Custom.Aways,7).seltext
 434.
          did -a $dname  3 %trigger
 435.
          did -a $+ $iif(%edittype == Prefix,c) $dname 5 Prefix
 436.
          did -a $+ $iif(%edittype == Suffix,c) $dname 5 Suffix
 437.
          did -a $+ $iif(%edittype == Set to,c) $dname 5 Set to
 438.
          did -a $+ $iif(%edittype == Don't Change,c) $dname 5 Don't Change
 439.
          if (%edittype == Don't Change) did -m $dname 6
 440.
          else did -ra $dname 6 %nickedit
 441.
          if (%reason) did -a $dname 8 %reason
 442.
        }
 443.
        else {
 444.
          did -a $dname 5 Prefix
 445.
          did -a $dname 5 Suffix
 446.
          did -a $dname 5 Set to
 447.
          did -a $dname 5 Don't Change
 448.
        }
 449.
      }
 450.
      ; Exception initiation events
 451.
      on *:dialog:Away.Exceptions:init:*: {
 452.
        var %x = 1,%total = $ini(AwaySettings.ini,Exceptions,0)
 453.
        while (%x <= %total) {
 454.
          did -a $dname 3 $ini(AwaySettings.ini,Exceptions,%x)
 455.
          inc %x
 456.
        }
 457.
      }
 458.
      on *:dialog:Away.AddException:init:*: {
 459.
        if (%Away.Exception) {
 460.
          var %info = $readini(AwaySettings.ini,Exceptions,%away.Exception)
 461.
          var %scope = $gettok(%info,1,126), %options = $gettok(%info,2,126), %chans = $gettok(%info,3-,126)
 462.
          did -a $dname 3 %Away.Exception
 463.
          if (%scope == 1) {
 464.
            did -c $dname 6
 465.
            did -b $dname 9
 466.
          }
 467.
          else {
 468.
            did -c $dname 7
 469.
            did -b $dname 12,15
 470.
            did -e $dname 9
 471.
            did -a $dname 9 %chans
 472.
          }
 473.
          if ($left(%options,1) == 1) && (%scope == 1) did -c $dname 12
 474.
          if ($mid(%options,2,1) == 1) did -c $dname 13
 475.
          if ($mid(%options,3,1) == 1) did -c $dname 14
 476.
          if ($right(%options,1) == 1) && (%scope == 1) did -c $dname 15
 477.
        }
 478.
        else {
 479.
          did -c $dname 6
 480.
          did -b $dname 9
 481.
        }
 482.
      }
 483.
       
 484.
      ; ##############################################
 485.
      ; # Dialog Sclick Events                       #
 486.
      ; ##############################################
 487.
      ; ----- Open Time Help dialog
 488.
      on *:dialog:Away.Help.13:sclick:3: {
 489.
        dialog $iif($dialog(Away.Help.Time),-o,-m) Away.Help.Time Away.Help.Time
 490.
        dialog -x $dname
 491.
      }
 492.
      ; ----- Select same line in each column in time help dialog
 493.
      on *:dialog:Away.Help.Time:sclick:*: {
 494.
        if ($did == 4) did -c $dname 5 $did(4).sel
 495.
        elseif ($did == 5) did -c $dname 4 $did(5).sel
 496.
      }
 497.
      ; ----- Processing clicks for main dialog
 498.
      on *:dialog:away:sclick:*: {
 499.
        ; Tab 100
 500.
        if ($did == 3) {
 501.
          writeini AwaySettings.ini Config NickEditType $did(3).seltext
 502.
          if ($did(3).seltext == Prefix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix)
 503.
          elseif ($did(3).seltext == suffix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix)
 504.
          elseif ($did(3).seltext == Set to) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo)
 505.
          else did -rm $dname 5
 506.
        }
 507.
        if ($did == 7) && ($did(7).state == 0) did -m $dname 8
 508.
        elseif ($did == 7) && ($did(7).state == 1) did -n $dname 8
 509.
        elseif ($did == 11) && ($did(11).state == 0) did -m $dname 12
 510.
        elseif ($did == 11) && ($did(11).state == 1) did -n $dname 12
 511.
        elseif ($did == 14) && ($did(14).state == 0) did -b $dname 15
 512.
        elseif ($did == 14) && ($did(14).state == 1) did -e $dname 15
 513.
        elseif ($istok(6|10|13|16|21|26|34|40|44|48,$did,124)) dialog $iif($dialog($+(Away.Help.,$did)),-o,-m) $+(Away.Help.,$did) $+(Away.Help.,$did)
 514.
        elseif ($did == 22) dialog $iif($dialog(Custom.Aways),-o,-m) Custom.Aways Custom.Aways
 515.
        elseif ($did == 27) dialog $iif($dialog(Idle.Away.Settings),-o,-m) Idle.Away.Settings Idle.Away.Settings
 516.
        ; Tab 200
 517.
        elseif ($did == 42) {
 518.
          if ($input(Retrieved the following hilights from your current mIRC settings: $crlf $crlf $+ $Get.Highlights $Crlf $crlf $+ Would you like to use these as your away system highlights? You can use the 'Modify Hilights' button to modify or add to these.,yi,Highlights)) {
 519.
            writeini AwaySettings.ini Config Hilights $Get.Highlights
 520.
          }
 521.
        }
 522.
        elseif ($did == 43) {
 523.
          var %hilights = $input(Enter Hilight words or identifiers seperated by commans ONLY. $crlf $+ Eg: $+($me,$chr(44),ALTNICK,$chr(44),$ $+ me),oe,Modify Hilights,$readini(AwaySettings.ini,n,Config,Hilights)))
 524.
          if (%hilights) writeini AwaySettings.ini Config Hilights $remove(%hilights,$chr(32))
 525.
          else remini Settings.ini Away.Config Hilights
 526.
        }
 527.
        elseif ($did == 46) {
 528.
          dialog $iif($dialog(Away.Exceptions),-v,-m) Away.Exceptions Away.Exceptions
 529.
        }
 530.
      }
 531.
      ; ----- Process button clicks and keep selection of all columns the same in presets dialog
 532.
      on *:dialog:Custom.Aways:sclick:*: {
 533.
        if ($did == 5)     did -c $dname 6,7 $did(5).sel
 534.
        elseif ($did == 6) did -c $dname 5,7 $did(6).sel
 535.
        elseif ($did == 7) did -c $dname 5,6 $did(7).sel
 536.
        elseif ($did == 8) dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings
 537.
        elseif ($did == 9) {
 538.
          if (!$did(5).sel) var %x = $input(Error: You must select an entry to delete,wo,Invalid Selection)
 539.
          elseif ($?!="Are you sure you want to delete this entry - $did(5).seltext ") {
 540.
            did -d $dname 5 $did(5).sel 
 541.
            did -d $dname 6 $did(6).sel 
 542.
            did -d $dname 7 $did(7).sel 
 543.
          }
 544.
        }
 545.
        elseif ($did == 10) {
 546.
          if (!$did(5).sel) { var %x = $input(Error: You must select an entry to edit,wo,Invalid Selection) | halt }
 547.
          set %Away.EditPreset $did(5).sel
 548.
          dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings
 549.
        }
 550.
        elseif ($did == 12) {
 551.
          if ($input(Are you sure you want to clear all your presets?,qy,Validation Prompt)) {
 552.
            var %x = 7
 553.
            while (%x > 0) {
 554.
              did -c $dname 5 %x
 555.
              if ($did(5).seltext) did -d $dname 5,6,7 $did(5).sel
 556.
              dec %x
 557.
            }
 558.
          }
 559.
        }
 560.
      }
 561.
       
 562.
      ; ----- Process Idle Away clicks/settings
 563.
      on *:dialog:Idle.Away.Settings:sclick:*: {
 564.
        var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60)
 565.
        if ($did == 3) {
 566.
          if ($did(3).seltext == Don't Change) did -rm $dname 4
 567.
          else did -n $dname 4
 568.
        }
 569.
        elseif ($did == 7) dialog $iif($dialog(Idle.Away.help),-v,-m) Idle.Away.help Idle.Away.Help
 570.
      }
 571.
      ; ----- Process Preset dialog clicks/settings
 572.
      on *:dialog:Away.Preset:sclick:*: {
 573.
        if ($did == 5) {
 574.
          if ($did(5).seltext == Don't Change) did -rm $dname 6
 575.
          else did -n $dname 6
 576.
        }
 577.
        elseif ($did == 9) dialog $iif($dialog(Preset.Help),-v,-m) Preset.Help Preset.Help
 578.
      }
 579.
      ; ----- Exception Clicks
 580.
      on *:dialog:Away.Exceptions:sclick:*: {
 581.
        if ($did == 6) dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException
 582.
        elseif ($did == 7) {
 583.
          if (!$did(3).sel) var %x = $input(You must select an entry to delete,wo,Invalid Selection)
 584.
          elseif ($?!="Are you sure you want to delete this entry - $did(3).seltext ") {
 585.
            remini AwaySettings.ini Exceptions $did(3).seltext
 586.
            did -d $dname 3 $did(3).sel
 587.
          }
 588.
        }
 589.
        elseif ($did == 8) {
 590.
          if (!$did(3).sel) var %x = $input(You must select an entry to edit,wo,Invalid Selection)
 591.
          else {
 592.
            set %Away.Exception $did(3).seltext
 593.
            set %Away.ExceptionNum $did(3).sel
 594.
            dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException
 595.
          }
 596.
        }
 597.
        elseif ($did == 9) {
 598.
          if ($input(Are you sure you want to clear all your network exceptions?,qy,Validation Prompt)) {
 599.
            var %x = $did(3).lines
 600.
            remini AwaySettings.ini Exceptions
 601.
            while (%x > 0) {
 602.
              did -c $dname 3 %x
 603.
              if ($did(3).seltext) did -d $dname 3 $did(3).sel
 604.
              dec %x
 605.
            }
 606.
          }
 607.
        }
 608.
      }
 609.
      on *:dialog:Away.AddException:Sclick:*: {
 610.
        if ($did == 6) {
 611.
          did -e $dname 12,15
 612.
          did -b $dname 9
 613.
          did -r $dname 9
 614.
        }
 615.
        elseif ($did == 7) {
 616.
          did -b $dname 12,15
 617.
          did -e $dname 9
 618.
          if ($did(12).state == 1) did -u $dname 12
 619.
          if ($did(15).state == 1) did -u $dname 15
 620.
        }
 621.
      }
 622.
      ; ##############################################
 623.
      ; # Dialog Close Events                        #
 624.
      ; ##############################################
 625.
      ; ----- Main dialog - save data
 626.
      on *:dialog:Away:close:*: {
 627.
        ; tab 100 settings
 628.
        if ($did(5)) {
 629.
          if ($did(3).seltext == Prefix) writeini AwaySettings.ini Config NickPrefix $did(5)
 630.
          elseif ($did(3).seltext == Suffix) writeini AwaySettings.ini Config NickSuffix $did(5)
 631.
          elseif ($did(3).seltext == Set to) writeini AwaySettings.ini Config  NickSetTo $did(5)
 632.
        } 
 633.
        else {
 634.
          writeini AwaySettings.ini Config NickPrefix Away|
 635.
          writeini AwaySettings.ini Config NickSuffix |Away
 636.
        }
 637.
        writeini AwaySettings.ini Config AutoAway $iif($did(7).state == 0,off,on)
 638.
        writeini AwaySettings.ini Config AutoAwayTime $iif($did(8),$calc($did(8) * 60),900)
 639.
        writeini AwaySettings.ini Config LeavingTime $iif($did(11).state == 0,off,on)
 640.
        writeini AwaySettings.ini Config LeavingTimeFormat $iif($did(12),$did(12),HH:nn:ss)
 641.
        writeini AwaySettings.ini Config TimeAway $iif($did(14).state == 0,off,on)
 642.
        writeini AwaySettings.ini Config TimeAwayFormat $iif($did(15),$did(15),Shorts)
 643.
        writeini AwaySettings.ini Config ARChannelMessage $iif($did(19).state == 0,off,on)
 644.
        writeini AwaySettings.ini Config ARPrivateMessage $iif($did(20).state == 0,off,on)
 645.
        if ($did(25)) writeini AwaySettings.ini Config DefaultMessage $did(25)
 646.
        else remini Settings.ini Away.Config DefaultMessage
 647.
        if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
 648.
        elseif ($timer(Away.IdleCheck)) .timerAway.IdleCheck off
 649.
       
 650.
        ;Tab 200 settings
 651.
        writeini AwaySettings.ini Config MsgChans $iif($did(32).state == 0,off,on)
 652.
        writeini AwaySettings.ini Config MsgQueries $iif($did(33).state == 0,off,on)
 653.
        writeini AwaySettings.ini Config RespondHilights $iif($did(37).state == 0,off,on)
 654.
        writeini AwaySettings.ini Config RespondPM $iif($did(38).state == 0,off,on)
 655.
        writeini AwaySettings.ini Config RespondNotice $iif($did(39).state == 0,off,on)
 656.
      }
 657.
      ; ----- Save presets
 658.
      on *:dialog:Custom.Aways:close:*: {
 659.
        var %x = 1, %lines = $did(5).lines
 660.
        while (%x <= %lines) {
 661.
          did -c $dname 5,6,7 %x
 662.
          writeini AwaySettings.ini presets %x $+($did(5).seltext,~,$did(6).seltext,~,$did(7).seltext)
 663.
          inc %x
 664.
        }
 665.
        dec %x
 666.
        while (%x < 7) {
 667.
          inc %x
 668.
          if ($readini(AwaySettings.ini,presets,%x)) remini AwaySettings.ini Presets %x
 669.
        }
 670.
      }
 671.
      ; ----- Save Idle away settings
 672.
      on *:dialog:Idle.Away.Settings:close:*: {
 673.
        writeini AwaySettings.ini Config IdleSettings $+($did(3).seltext,~,$iif($did(4),$ifmatch,IDLE),~,$iif($did(6),$ifmatch,Auto away after % $+ time minutes idle))
 674.
      }
 675.
      ; ----- Save Preset settings
 676.
      on *:dialog:Away.Preset:close:*: {
 677.
        var %pre = %away.EditPreset
 678.
        if (!$did(3)) var %x = $input(Error: No trigger was specified,ow,Input Error)
 679.
        elseif (!$did(6)) && ($did(5).seltext != Don't Change) var %x = $input(Error: You did not specify $iif($did(5).seltext,a nick $iif($did(5).seltext == set to,to change to,$ifmatch),any nick settings),ow,Input Error)
 680.
        elseif ($remove($did(6),$chr(91),$chr(93),$chr(92),$chr(45),$chr(95),$chr(123),$chr(124),$chr(125)) !isalnum) && ($did(6)) { var %x = $input(Error: Invalid Characters detected in specified nick,wo,Input Error) | halt }
 681.
        elseif (!$did(5).seltext) var %x = $input(Error: You have not specified how to change your nick - Select an option from the nick settings drop down,ow,Error)
 682.
        elseif ($numtok($did(3),32) > 1) || ($numtok($did(6),32) > 1) var %x = $input(Error: Trigger and nick Settings can each only be one word long,wo,Input Error)
 683.
        else {
 684.
          did $iif(%pre,-o,-a) Custom.Aways 5 $iif(%pre,%pre) $did(3)
 685.
          did $iif(%pre,-o,-a) Custom.Aways 6 $iif(%pre,%pre) $did(5).seltext $+ $iif($did(5).seltext != Don't Change,: $did(6))
 686.
          did $iif(%pre,-o,-a) Custom.Aways 7 $iif(%pre,%pre) $did(8)
 687.
          unset %away.EditPreset
 688.
        }
 689.
      }
 690.
      ; ---- Save Exception settings
 691.
      on *:dialog:Away.AddException:close:*: {
 692.
        if (!$did(3)) var %x = $input(No Network name was entered,wo,Input Error)
 693.
        elseif ($numtok($did(3),32) > 1) var %x = $input(Network name may not contain spaces,wo,Input Error)
 694.
        else {
 695.
          var %scope = $iif($did(6).state == 1,1,2)
 696.
          var %x = 1, %numchans = $numtok($did(9),32)
 697.
          while (%x <= %numchans) {
 698.
            var %token = $gettok($did(9),%x,32)
 699.
            if (#?* iswm %token) var %chans = %chans %token
 700.
            elseif (%token != $chr(35)) var %chans = %chans $+($chr(35),%token)
 701.
            inc %x
 702.
          }
 703.
          var %x = 12
 704.
          while (%x <= 15) {
 705.
            var %options = %options $+ $did(%x).state
 706.
            inc %x
 707.
          } 
 708.
          did $iif(%Away.ExceptionNum,-o,-a) Away.Exceptions 3 $iif(%Away.ExceptionNum,$ifmatch) $did(3)
 709.
          writeini AwaySettings.ini Exceptions $did(3) $+(%scope,~,%options,~,%chans)
 710.
          unset %Away.Exception*
 711.
        }
 712.
      }
 713.
      ; ##############################################
 714.
      ; # /Away And /back aliases                    #
 715.
      ; ##############################################
 716.
      alias away {
 717.
        ; ----- Unset Idle timer, Get highlights, enable #away group for logging etc
 718.
        if ($timer(Away.IdleCheck)) .timerAway.IdleCheck off
 719.
        set %Away.Hilights $readini(awaySettings.ini,n,Config,Hilights)
 720.
        .enable #away
 721.
       
 722.
        ; ---- Retrieve away settings from config/User entry
 723.
        var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60)
 724.
        if ($1) set %away.Reason $1-
 725.
        elseif ($readini(AwaySettings.ini,Config,DefaultMessage)) set %away.Reason $v1
 726.
        set %Away.LeftAt $ctime
 727.
        if ($readini(AwaySettings.ini,Config,LeavingTime) == on) {
 728.
          var %LeavingTimeFormat = $readini(AwaySettings.ini,Config,LeavingTimeFormat)
 729.
          set %away.LeaveTime $time(%LeavingTimeFormat)
 730.
        }
 731.
        ; ---- Check for idleaway
 732.
        If ($1- = Auto.Idle.Away) {
 733.
          var %IdleInfo = $readini(AwaySettings.ini,Config,IdleSettings)
 734.
          var %edittype = $gettok(%IdleInfo,1,126)
 735.
          if (%edittype == Set to) var %nickset = $gettok(%IdleInfo,2,126)
 736.
          else var %nickadd = $gettok(%IdleInfo,2,126)
 737.
          set %Away.Reason $($gettok(%IdleInfo,3-,126),2)
 738.
        }
 739.
        else {
 740.
          var %edittype = $readini(AwaySettings.ini,Config,NickEditType)
 741.
          if (%edittype == Set To) var %nickset = $readini(AwaySettings.ini,Config,NickSetTo)
 742.
          else var %nickadd = $readini(AwaySettings.ini,Config,Nick $+ %edittype)
 743.
        }
 744.
        ; ----- Check for presets
 745.
        var %x 1
 746.
        while (%x <= 7) {
 747.
          if ($readini(AwaySettings.ini,Presets,%x)) {
 748.
            var %preset = $v1
 749.
            if ($1- == $gettok(%preset,1,126)) {
 750.
              var %edittype = $gettok($gettok(%preset,2,126),1,58)
 751.
              var %nickadd = $remove($gettok($gettok(%preset,2,126),2,58),$chr(32))
 752.
              set %Away.Reason $gettok(%preset,3-,126)
 753.
              set %Away.Preset %x
 754.
              var %x = 7
 755.
            }
 756.
          }
 757.
          inc %x
 758.
        }
 759.
        ; ----- Cycle Connections to change nick/send msg
 760.
        var %x = 1, %connections = $scon(0)
 761.
        while (%x <= %connections) {
 762.
          scon %x
 763.
          if ($status == connected) {
 764.
            unset %Except.*
 765.
            if ($readini(AwaySettings.ini,Exceptions,$network)) {
 766.
              var %Except.info = $v1
 767.
              var %Except.Scope = $gettok(%Except.info,1,126)
 768.
              var %Except.Options = $gettok(%Except.info,2,126)
 769.
              if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126)
 770.
              if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1
 771.
              if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1
 772.
            }
 773.
            set $+(%,Away.Oldnick.,$network) $me
 774.
            if ($readini(AwaySettings.ini,Config,NickEditType) != Don't Change) && (!%Except.NoNickChange) {
 775.
              if (%edittype == Set To) && (%NickSet != $me) var %newnick = %NickSet
 776.
              if (%edittype == Prefix) && ($+(%nickadd,*) !iswm $me) var %newnick = $+(%nickadd,$me)
 777.
              if (%edittype == Suffix) && ($+(*,%nickadd) !iswm $me) var %newnick = $+($me,%nickadd)
 778.
              set $+(%,Away.Newnick.,$network) $iif(%newnick,$ifmatch,$me)
 779.
              if (%newnick) nick %newnick
 780.
            }
 781.
            if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) {
 782.
              amsg 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7))
 783.
            }
 784.
            if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg)  {
 785.
              qmsg 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7))
 786.
            }
 787.
            !away 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7))
 788.
          }
 789.
          inc %x
 790.
        }
 791.
      }
 792.
       
 793.
      alias back {
 794.
        var %x = 1, %connections = $scon(0)
 795.
        while (%x <= %connections) {
 796.
          scon %x
 797.
          if ($status == connected) {
 798.
            unset %Except.*
 799.
            if ($readini(AwaySettings.ini,Exceptions,$network)) {
 800.
              var %Except.info = $v1
 801.
              var %Except.Scope = $gettok(%Except.info,1,126)
 802.
              var %Except.Options = $gettok(%Except.info,2,126)
 803.
              if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126)
 804.
              if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1
 805.
              if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1
 806.
            }
 807.
       
 808.
            if (!%Except.NoNickChange) && ($($+(%,Away.Oldnick.,$network),2)) nick $ifmatch
 809.
       
 810.
            ; ----- Cycle Connections to change nick/send msg
 811.
            if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) {
 812.
              amsg 7[14Back7] $iif(%away.Reason,14From:07 %Away.Reason) $iif(%Away.Leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) $iif($Away.GoneFor,14Gone for:07 $Away.GoneFor)
 813.
            }
 814.
            if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg) {
 815.
              qmsg 7[14Back7] $iif(%away.Reason,14From:07 %Away.Reason) $iif(%Away.Leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) $iif($Away.GoneFor,14Gone for:07 $Away.GoneFor)
 816.
            }
 817.
            !away
 818.
          }
 819.
          inc %x
 820.
        }
 821.
        .disable #away
 822.
        unset %away.*
 823.
        if ($hget(Away.PM.Responses)) || ($hget(Away.Highlight.Responses)) hfree -w Away.*.Responses
 824.
        if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck
 825.
      }
 826.
      ; ##############################################
 827.
      ; # Other Aliases                              #
 828.
      ; ##############################################
 829.
      alias -l Away.Gonefor {
 830.
        if ($readini(AwaySettings.ini,Config,TimeAway) == on) {
 831.
          var %TimeAwayFormat = $readini(AwaySettings.ini,Config,TimeAwayFormat)
 832.
          if (%Away.LeftAt) {
 833.
            var %duration = $duration($calc($ctime - %Away.LeftAt),%TimeAwayFormat)
 834.
            if (%TimeAwayFormat == Short) return $Short.Duration(%duration)
 835.
            elseif (%TimeAwayFormat == medium) return %duration
 836.
            elseif (%TimeAwayFormat == long) return $Long.Duration(%duration)
 837.
          }
 838.
        }
 839.
        else return $false
 840.
      }
 841.
      alias -l Short.Duration return $replacex($1-,secs,s,sec,s,mins,m,min,m,hrs,h,hr,h,days,d,day,d,wks,w,wk,w)
 842.
      alias -l Long.Duration return $replacex($1-,sec,second,secs,seconds,min,minute,mins,minutes,hr,hour,hrs,hours,wk,week,wks,weeks)
 843.
       
 844.
      alias -l Get.Highlights {
 845.
        var %x = 1, %Groups = $ini(mirc.ini,highlight,0)
 846.
        while (%x <= %groups) {
 847.
          var %Away.Highlights = $addtok(%Away.highlights,$highlight(%x),44)
 848.
          inc %x
 849.
        }
 850.
        return %Away.Highlights
 851.
      }
 852.
      alias -l Check.For.highlights {
 853.
        if (!%Away.Highlights) set %Away.Highlights $readini(AwaySettings.ini,n,Config,Hilights)
 854.
        var %x = 1, %highlights = $numtok(%Away.highlights,44)
 855.
        while (%x <= %highlights) {
 856.
          var %chighlight = $($gettok(%Away.Highlights,%x,44),2)
 857.
          if ($istok($1-,%chighlight,32)) return %chighlight
 858.
          inc %x
 859.
        }
 860.
        return $false
 861.
      }
 862.
      alias -l Away.Logwin {
 863.
        if (!$window(@Away.Logs)) window -eknz @Away.Logs
 864.
        echo -ti2 @Away.Logs $1-
 865.
      }
 866.
      alias -l Highlight.Response {
 867.
        if (!$hget(Away.highlight.Responses,$+($1,.,$2))) {
 868.
          scid $1 .notice $2 7[14Away7] $iif(%Away.Reason,14Reason:7 %Away.Reason) $iif(%Away.LeaveTime,14Left at:07 %Away.LeaveTime (14+1 GMT7)) $iif($away.gonefor,14Gone for:07 $away.gonefor)
 869.
          hadd -m Away.Highlight.Responses $+($1,.,$2) 1
 870.
        }
 871.
      }
 872.
      alias -l Private.Message.Response {
 873.
        if (!$hget(Away.PM.Responses,$+($1,.,$2))) {
 874.
          scid $1 .msg $2 7[14Away7] $iif(%Away.Reason,14Reason:7 %Away.Reason) $iif(%Away.LeaveTime,14Left at:07 %Away.LeaveTime (14+1 GMT7)) $iif($away.gonefor,14Gone for:07 $away.gonefor)
 875.
          hadd -m Away.PM.Responses $+($1,.,$2) 1
 876.
        }
 877.
      }
 878.
      alias -l Away.IdleCheck {
 879.
        var %x = 1, %networks = $scon(0)
 880.
        var  %AutoAwayTime = $readini(AwaySettings.ini,Config,AutoAwayTime)
 881.
        while (%x <= %networks) {
 882.
          scon %x {
 883.
            if ($status == Connected) && ($idle < %AutoAwayTime) var %Idle = off
 884.
          }   
 885.
          inc %x
 886.
        }
 887.
        if (%idle != off) away Auto away
 888.
      }
 889.
      alias Away.Config dialog  $iif($dialog(Away),-v,-m) Away Away
 890.
      ; ##############################################
 891.
      ; # Logging and hilight resposes               #
 892.
      ; ##############################################
 893.
      #away off
 894.
      ;Hilight responses
 895.
      on *:text:*:#: {
 896.
        if (!$Check.For.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return
 897.
        if ($nick == [DM]) halt
 898.
        else {
 899.
          Away.Logwin 4[10CHANNEL MESSAGE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) $1-
 900.
          if ($readini(AwaySettings.ini,Exceptions,$network)) {
 901.
            var -s %Except.info = $v1
 902.
            var -s %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
 903.
            if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
 904.
            elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return
 905.
          }
 906.
          if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick
 907.
        }
 908.
      }
 909.
      on *:action:*:#: {
 910.
        if (!$check.for.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return
 911.
        else {
 912.
          Away.Logwin 4[10CHANNEL  10ACTION4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) * $nick $1-
 913.
          if ($readini(AwaySettings.ini,Exceptions,$network)) {
 914.
            var %Except.info = $v1
 915.
            var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
 916.
            if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
 917.
            elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return
 918.
          }   
 919.
          if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick
 920.
        }
 921.
      }
 922.
      ; Private notice response
 923.
      on *:notice:*:?: {
 924.
        if (*serv !iswm $nick) {
 925.
          Away.Logwin 4[10PRIVATE NOTICE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),Private,12/10,$nick,4]) $1-
 926.
          if ($readini(AwaySettings.ini,Exceptions,$network)) {
 927.
            var %Except.info = $v1
 928.
            var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
 929.
            if (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return
 930.
          }   
 931.
          if ($readini(AwaySettings.ini,Config,RespondNotice) == on) Private.Message.Response $cid $nick
 932.
        }
 933.
      }
 934.
      ;PM responses
 935.
      on *:text:*:?: {
 936.
        if ($readini(AwaySettings.ini,Config,RespondPM) == on) && (*serv !iswm $nick) {
 937.
          if ($readini(AwaySettings.ini,Exceptions,$network)) {
 938.
            var %Except.info = $v1
 939.
            var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126)
 940.
            if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126)
 941.
            elseif (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return
 942.
          }   
 943.
          Private.Message.Response $cid $nick
 944.
        }
 945.
      }
 946.
      ;Return from away on input if set
 947.
      on *:input:#: {
 948.
        if ($left($1,1) != $readini(mirc.ini,text,commandchar)) {
 949.
          if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) back
 950.
        }
 951.
      }
 952.
      on *:input:?: {
 953.
        if ($left($1,1) != $readini(mirc.ini,text,commandchar)) {
 954.
          if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) back
 955.
        }
 956.
      }
 957.
      #away end
 958.
       
 959.
      alias reset.away {
 960.
        set %away.LeaveTime $time
 961.
        set %Away.LeftAt $ctime
 962.
        echo -ta Reset away
 963.
      } 

Raw Content Download: http://pastebin.ca/raw/446991
Total Paste Views: 4

Either update this post and resubmit it with changes, or make a new post.

You may also comment on this post.
paste below
; ############################################## ; # Start Idle Away Timer # ; ############################################## on *:start: if ($readini(Settings.ini,Away.Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck ; ############################################## ; # Load Default Options # ; ############################################## on *:load: { if (!$readini(AwaySettings.ini,Config,NickEditType)) writeini AwaySettings.ini Config NickEditType Suffix if (!$readini(AwaySettings.ini,Config,NickPrefix)) writeini AwaySettings.ini Config NickPrefix Away| if (!$readini(AwaySettings.ini,Config,NickSuffix)) writeini AwaySettings.ini Config NickSuffix |Away if (!$readini(AwaySettings.ini,Config,NickSetTo)) writeini AwaySettings.ini Config NickSuffix Away if (!$readini(AwaySettings.ini,Config,AutoAway)) writeini AwaySettings.ini Config AutoAway off if (!$readini(AwaySettings.ini,Config,AutoAwayTime)) writeini AwaySettings.ini Config AutoAwayTime 900 if (!$readini(AwaySettings.ini,Config,IdleSettings)) writeini AwaySettings.ini Config IdleSettings Suffix~|Idle~Auto away after %time minutes idle if (!$readini(AwaySettings.ini,Config,LeavingTime)) writeini AwaySettings.ini Config LeavingTime off if (!$readini(AwaySettings.ini,Config,LeavingTimeFormat)) writeini AwaySettings.ini Config LeavingTimeFormat HH:nn:ss if (!$readini(AwaySettings.ini,Config,TimeAway)) writeini AwaySettings.ini Config TimeAway off if (!$readini(AwaySettings.ini,Config,TimeAwayFormat)) writeini AwaySettings.ini Config TimeAwayFormat Short if (!$readini(AwaySettings.ini,Config,ARChannelMessage)) writeini AwaySettings.ini Config ARChannelMessage off if (!$readini(AwaySettings.ini,Config,ARPrivateMessage)) writeini AwaySettings.ini Config ARPrivateMessage off if (!$readini(AwaySettings.ini,Config,MsgChans)) writeini AwaySettings.ini Config MsgChans on if (!$readini(AwaySettings.ini,Config,MsgQueries)) writeini AwaySettings.ini Config MsgQueries off if (!$readini(AwaySettings.ini,Config,RespondHilights)) writeini AwaySettings.ini Config RespondHilights on if (!$readini(AwaySettings.ini,Config,RespondPM)) writeini AwaySettings.ini Config RespondPM on if (!$readini(AwaySettings.ini,Config,RespondNotice)) writeini AwaySettings.ini Config RespondNotice on echo -a 4>>> Successfully loaded $remove($script,$scriptdir) - Away System script by Urza } ; ############################################## ; # Remove Away if unloaded # ; ############################################## on *:unload: { disable #away unset %away.* hfree away.*.responses timerAway.Idlecheck off } ; ############################################## ; # Cancel Away on exit # ; ############################################## on *:exit: { disable #away unset %away.* timerAway.Idlecheck off } ; ############################################## ; # Popup Menus # ; ############################################## menu status,channel,query,menubar,@Away.Logs { - Away Settings .Open away options: Dialog $iif($dialog(away),-o,-m) away away .$iif($active == @Away.Logs,Close window):window -c $active . - . Set away $+ $chr(58) $iif($group(#away) == off,on,off): { if ($group(#away) == off) away $?="Enter away reason or leave black for default (if set)" else back } .- .$iif($group(#away) == on && %Away.Preset == 1,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,1),$style(2))) Preset 1 - $iif($readini(AwaySettings.ini,Presets,1),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,1),1,126) .$iif($group(#away) == on && %Away.Preset == 2,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,2),$style(2))) Preset 2 - $iif($readini(AwaySettings.ini,Presets,2),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,2),1,126) .$iif($group(#away) == on && %Away.Preset == 3,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,3),$style(2))) Preset 3 - $iif($readini(AwaySettings.ini,Presets,3),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,3),1,126) .$iif($group(#away) == on && %Away.Preset == 4,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,4),$style(2))) Preset 4 - $iif($readini(AwaySettings.ini,Presets,4),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,4),1,126) .$iif($group(#away) == on && %Away.Preset == 5,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,5),$style(2))) Preset 5 - $iif($readini(AwaySettings.ini,Presets,5),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,5),1,126) .$iif($group(#away) == on && %Away.Preset == 6,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,6),$style(2))) Preset 6 - $iif($readini(AwaySettings.ini,Presets,6),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,6),1,126) .$iif($group(#away) == on && %Away.Preset == 7,$style(3),$iif($group(#away) == on || !$readini(AwaySettings.ini,Presets,7),$style(2))) Preset 7 - $iif($readini(AwaySettings.ini,Presets,7),$gettok($v1,1,126),Not set):away $gettok($readini(AwaySettings.ini,Presets,7),1,126) } ; ############################################## ; # Main Dialog # ; ############################################## dialog away { title Away System Settings size -1 -1 150 177 option dbu tab "Basic Settings" 100,0 0 150 156 tab "Exceptions and Messaging" 200,0 0 150 156 Box "Default Away Settings", 2, 4 15 142 45, tab 100 text "Nick:", 1, 8 28 12 10, tab 100 combo 3, 22 26 50 10, drop tab 100 edit "", 5, 75 26 50 10, tab 100 button "?", 6, 130 26 10 10, tab 100 text "Default Away Message:", 24, 8 39 100 10, tab 100 edit "", 25, 8 47 117 10, autohs tab 100 button "?", 26, 130 47 10 10, tab 100 box "Global Options" 4, 4 62 142 92, tab 100 check "A&uto Away After", 7, 12 71 50 10, tab 100 edit "", 8, 63 71 10 10, tab 100 text "minutes.", 9, 75 72.5 40 10, tab 100 button "?", 10, 130 71 10 10, tab 100 button "options", 27, 98 71 30 10, tab 100 check "Show &Leaving Time?" 11, 12 85 60 10, tab 100 edit "" 12, 75 85 50 10, tab 100 button "?", 13, 130 85 10 10, tab 100 check "Show &Time Away?" 14, 12 100 55 10, tab 100 combo 15, 75 100 50 10, drop tab 100 button "?", 16, 130 100 10 10, tab 100 box "Auto Return" 17, 7 115 136 35, tab 100 text "Cancel away on:" 18, 12 125 80 10, tab 100 check "&Channel Message" 19, 60 124 50 10, tab 100 check "&Private Message" 20, 60 134 50 10, tab 100 button "?", 21, 130 134 10 10, tab 100 ;Exception + messaging options: - display only does nothing yet box "Messaging", 30, 4 15 142 90, tab 200 text "Send messages to:", 31, 8 26 50 10, tab 200 check "All open channels" 32, 60 25 50 10, tab 200 check "All open queries" 33, 60 35 50 10, tab 200 button "?", 34, 130 26 10 10, tab 200 box "Response Messages", 35, 8 48 134 38, tab 200 text "Respond to:", 36, 12 56 50 10, tab 200 check "Channel highlight", 37, 60 55 50 10, tab 200 check "Private message", 38, 60 65 50 10, tab 200 check "Private notice", 39, 60 75 50 10, tab 200 button "?", 40, 130 55 10 10, tab 200 button "Get mIRC hilights", 42, 18 90 50 10, tab 200 button "Modify Hilights", 43, 70 90 50 10, tab 200 button "?", 44, 130 90 10 10, tab 200 box "Exceptions", 45, 4 109 142 24, tab 200 button "Modify Away System Exceptions" 46, 8 118 100 10, tab 200 button "?", 48, 130 118 10 10, tab 200 button "Edit &Presets" 22, 12 159 60 15 button "&Ok" 23, 80 159 60 15, ok } ; ############################################## ; # Custom presets dialog # ; ############################################## dialog Custom.Aways { title Custom Away Messages size -1 -1 236 110 option dbu box "Custom Away Triggers" 1, 4 4 227 85 text "Trigger", 2, 16 12 30 10 text "Nick Settings", 3, 50 12 50 10 text "Away Message", 4, 130 12 50 10 list 5, 10 20 30 50 list 6, 40 20 50 50 list 7, 90 20 134 50, autohs button "Add", 8, 10 70 50 15 button "Edit", 10, 65 70 50 15 button "Delete", 9, 120 70 50 15 button "Clear", 12, 175 70 50 15 button "OK", 11, 90 90 50 15, OK } ; ############################################## ; # Idle Away Settings + Help dialogs # ; ############################################## dialog Idle.Away.Settings { title Idle Away Settings size -1 -1 120 85 option dbu box "Idle away settings", 1, 4 4 112 55 text "Nick Settings:", 2, 8 12 50 10 combo 3, 8 20 50 10, drop edit "", 4, 62 20 50 10 text "Idle away message:", 5, 8 35 50 10 edit "", 6, 8 43 104 10, autohs button "&Help" 7, 5 65 50 15 button "&Ok", 8, 65 65 50 15, OK } Dialog Idle.Away.Help { title Away System Help size -1 -1 150 90 option dbu box "Idle away help", 1, 4 4 142 60 text "Idle away nick and automatic message settings work in the same way as the default away settings in the main dialog, except that they define the settings used when you are automatically set away from Idle" 2, 8 15 133 25 text "you can use %time to refer to the time you must idle before being set as away", 3, 8 45 133 20 button "&Ok", 4, 50 70 50 15, OK } ; ############################################## ; # Preset Settings + Help dialogs # ; ############################################## dialog Preset.Settings { title Preset Settings size -1 -1 120 100 option dbu box "Preset settings", 1, 4 4 112 70 text "Trigger:", 2, 8 14 50 10 edit "", 3, 30 13 50 10 text "Nick Settings:", 4, 8 27 50 10 combo 5, 8 35 50 10, drop edit "", 6, 62 35 50 10 text "Away message:", 7, 8 50 50 10 edit "", 8, 8 58 104 10, autohs button "&Help" 9, 5 80 50 15 button "&Ok", 10, 65 80 50 15, OK } Dialog Preset.Help { title Away System Help size -1 -1 150 90 option dbu box "Presets help", 1, 4 4 142 60 text "Preset nick and Away message settings work in the same way as the default away settings in the main dialog, except that they define the settings used for the preset you are creating" 2, 8 15 133 27 text "To use a preset once you have created it simply type /Away TRIGGER", 3, 8 45 133 20 button "&Ok", 4, 50 70 50 15, OK } ; ############################################## ; # Exceptions dialogs # ; ############################################## dialog Away.Exceptions { title Away System Exceptions size -1 -1 120 100 option dbu box "Exceptions" 1, 4 4 112 75 text "Networks" 2, 8 12 50 10, center list 3, 8 19 50 58 button "Add" 6, 61 20 50 10 button "Delete" 7, 61 34 50 10 button "Edit" 8, 61 49 50 10 button "Clear" 9, 61 63 50 10 button "OK" 10, 35 82 50 15, oks } dialog Away.AddException { title Add Exception size -1 -1 156 190 option dbu box "Add Exception" 1, 4 4 148 165 text "Network Name:" 2, 8 16 40 10 edit "" 3, 50 15 60 10 text "If you are unsure of a network name you can type: //echo -a $network in mIRC to view it." 20, 8 30 130 15 box "Exception scope" 4, 8 50 140 55 Text "This exception affects:" 5, 12 60 55 10 radio "Entire network" 6, 69 59 65 10 radio "certain channels only" 7, 69 69 65 10 Text "Enter Channels to be excepted, seperated by spaces." 8, 12 80 130 10 edit "" 9, 12 90 130 10 box "Exception Options" 10, 8 110 140 55 text "On this network:" 11, 12 120 45 10 check "Do not change nick" 12, 55 120 55 10 check "Do not send away messages" 13, 55 130 80 10 check "Do not send hilight responses" 14, 55 140 80 10 check "Do not send PM responses" 15, 55 150 80 10 button "OK" 16, 53 172 50 15, Ok } ; ############################################## ; # Help Dialogs # ; ############################################## dialog Away.Help.6 { title Away System Help size -1 -1 150 120 option dbu box "Nick Settings Help", 1, 5 5 140 90 text "Nick PREFIX: Adds the specified text to the FRONT of your nick when going away", 2, 8 15 133 20 text "Nick SUFFIX: Adds the specified text to the END of your nick when going away", 3, 8 35 133 20 text "Set to: Sets your nick to the specified nick when you set away", 4, 9 55 133 20 text "Don’t Change: Means that you’re nick will not change when going away or coming back", 5, 8 75 133 20 button "OK", 7, 50 100 50 15, OK } dialog Away.Help.10 { title Away System Help size -1 -1 150 90 option dbu box "Auto Away Help", 1, 5 5 140 60 text "Enabling Auto-Away will automatically set you as away if you are idle for the specified time", 2, 8 15 134 20 text "Time must be between 1 and 60 minutes", 3, 8 35 134 20 text "Options for settings Idle nick and message can be found by clicking the options button", 4, 8 45 134 20 button "OK", 5, 50 70 50 15, ok } dialog Away.Help.13 { title Away System Help size -1 -1 150 80 option dbu box "Show Leaving Time Help", 1, 5 5 140 50 text "Enabling 'Show Leaving Time' will display the time you went away in all your away messages in the specified Time Format", 2, 8 15 134 20 button "Click Here for a list of codes used in time format", 3, 8 40 134 10 button "OK", 4, 50 60 50 15, ok } dialog Away.Help.16 { title Away System Help size -1 -1 150 90 option dbu box "Show Time Away Help", 1, 5 5 140 60 text "Enabling 'Show Time Away' will display how long you have been away in all your away messages in the specified Time Format", 2, 8 15 134 20 text "Example of Short format: 5h 6m 10s" 3, 8 40 134 10 text "Example of Medium format: 5hrs 6mins 10secs" 4, 8 48 134 10 text "Example of long format: 5 hours 6 minutes 10 seconds" 5, 8 56 134 10 button "OK", 6, 50 70 50 15, ok } dialog Away.Help.21 { title Away System Help size -1 -1 150 65 option dbu box "Automatic Return Help", 1, 5 5 140 35 text "Enabling 'Automatic Return' will automatically bring you back from away if you send any Channel And/Or Private message", 2, 8 15 134 20 button "OK", 5, 50 45 50 15, ok } dialog Away.Help.26 { title Away System Help size -1 -1 150 55 option dbu box "Default Message Help", 1, 5 5 140 27 text "If you do not enter a reason when going away this default will be used", 2, 8 15 134 20 button "OK", 3, 50 35 50 15, ok } dialog Away.Help.34 { title Away System Help size -1 -1 150 60 option dbu box "Message sending help", 1, 5 5 140 32 text "These options refer to weather your away message will be sent to channels and/or Pm's (Queries) when leaving and returning.", 2, 8 15 134 20 button "OK", 3, 50 40 50 15, ok } dialog Away.Help.40 { title Away System Help size -1 -1 150 80 option dbu box "Auto Response Help", 1, 5 5 140 50 text "These options refer to what actions will trigger an auto message alerting the person that you are away.", 2, 8 15 134 20 text "Channel highlight is triggered whenever someone says a word that is in your hilights list", 3, 8 35 134 20 button "OK", 4, 50 60 50 15, ok } dialog Away.Help.44 { title Away System Help size -1 -1 150 120 option dbu box "Hilight help", 1, 5 5 140 92 text "'Hilight' occurs whenever somebody says a word that is in your hilights list.", 2, 8 15 134 20 text "Your away hilights determine what words, when said, will cause the script to notify the person that you are away, and log the message", 3, 8 31 134 20 text "If you have hilights set in mIRC you can click 'Get mIRC Hilights' to have the away system use these same hilights", 4, 8 54 134 20 text "You may also add or modify seperate ones using the 'Modify Hilights' button. Note that Identifiers such as $me (which refers to your current nick) are also allowed" 5, 8 75 134 20 button "OK", 6, 50 100 50 15, ok } dialog Away.Help.48 { title Away System Help size -1 -1 150 65 option dbu box "Exceptions help", 1, 5 5 140 35 text "Exceptions allow you to specify networks/channels in which away messages are not sent, or networks in which your nick is not changed", 2, 8 15 134 25 button "OK", 3, 50 45 50 15, ok } dialog Away.Help.Time { title Away System Help size -1 -1 150 155 option dbu box "Time Format Help", 1, 5 5 140 120 text "The following is a list of Codes that can be used in Time Formats", 2, 8 15 134 20 box "Time Format Codes", 3, 8 30 134 88 list 4, 20 40 20 75 list 5, 40 40 90 75 button "OK", 6, 50 130 50 15, ok } ; ############################################## ; # Dialog Initiation events # ; ############################################## ; ----- Populate Time help on *:dialog:Away.Help.Time:init:*: { did -a $dname 4 HH did -a $dname 5 Hours - 2 Digit 24 hour time - $time(HH) did -a $dname 4 H did -a $dname 5 Hours - 1 Digit 24 hour time - $time(H) did -a $dname 4 hh did -a $dname 5 Hours - 2 Digit 12 hour time - $time(hh) did -a $dname 4 h did -a $dname 5 Hours - 1 Digit 12 hour time - $time(h) did -a $dname 4 nn did -a $dname 5 Minutes - 2 Digit - $time(nn) did -a $dname 4 n did -a $dname 5 Minutes - 1 Digit - $time(n) did -a $dname 4 ss did -a $dname 5 Seconds - 2 Digit - $time(ss) did -a $dname 4 s did -a $dname 5 Seconds - 1 Digit - $time(s) did -a $dname 4 tt did -a $dname 5 am/pm - Lower case - $time(tt) did -a $dname 4 TT did -a $dname 5 AM/PM - Upper Case - $time(TT) } ; ----- Populate main dialog settings on *:dialog:away:init:*: { ;Tab 100 Controls did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Prefix,c) $dname 3 Prefix did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Suffix,c) $dname 3 Suffix did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Set to,c) $dname 3 Set to did -a $+ $iif($readini(AwaySettings.ini,Config,NickEditType) == Don't Change,c) $dname 3 Don't Change if ($readini(AwaySettings.ini,Config,NickEditType) == Don't Change) did -m $dname 5 if ($readini(AwaySettings.ini,Config,NickPrefix)) && ($did(away,3).seltext == Prefix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix) if ($readini(AwaySettings.ini,Config,NickSuffix)) && ($did(away,3).seltext == Suffix) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix) if ($readini(AwaySettings.ini,Config,NickSetTo)) && ($did(away,3).seltext == Set To) did -ra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo) if ($readini(AwaySettings.ini,Config,AutoAway) == on) did -c $dname 7 | else did -m $dname 8 if ($readini(AwaySettings.ini,Config,AutoAwayTime)) did -a $dname 8 $calc($ifmatch / 60) | else did -a $dname 8 900 if ($readini(AwaySettings.ini,Config,LeavingTime) == on) did -c $dname 11 | else did -m $dname 12 if ($readini(AwaySettings.ini,Config,LeavingTimeFormat)) did -a $dname 12 $ifmatch | else did -a $dname 12 HH:nn:ss if ($readini(AwaySettings.ini,Config,TimeAway) == on) did -c $dname 14 | else did -b $dname 15 if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Short) did -ac $dname 15 Short | else did -a $dname 15 Short if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Medium) did -ac $dname 15 Medium | else did -a $dname 15 Medium if ($readini(AwaySettings.ini,Config,TimeAwayFormat) == Long) did -ac $dname 15 Long | else did -a $dname 15 Long if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) did -c $dname 19 if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) did -c $dname 20 if ($readini(AwaySettings.ini,Config,DefaultMessage)) did -a $dname 25 $ifmatch ;Tab 200 controls if ($readini(AwaySettings.ini,Config,MsgChans) == on) did -c $dname 32 if ($readini(AwaySettings.ini,Config,MsgQueries) == on) did -c $dname 33 if ($readini(AwaySettings.ini,Config,RespondHilights) == on) did -c $dname 37 if ($readini(AwaySettings.ini,Config,RespondPM) == on) did -c $dname 38 if ($readini(AwaySettings.ini,Config,RespondNotice) == on) did -c $dname 39 } ; ----- Populate Custom presets list on *:dialog:Custom.Aways:init:*: { var %x = 1 while (%x <= 7) { if ($readini(AwaySettings.ini,Presets,%x)) { did -a $dname 5 $gettok($v1,1,126) did -a $dname 6 $gettok($v1,2,126) did -a $dname 7 $gettok($v1,3-,126) } else halt inc %x } } ; ----- Populate Idle Away Settings on *:dialog:Idle.Away.Settings:init:*: { tokenize 126 $readini(AwaySettings.ini,n,Config,IdleSettings) did -a $+ $iif($1 == Prefix,c) $dname 3 Prefix did -a $+ $iif($1 == Suffix,c) $dname 3 Suffix did -a $+ $iif($1 == Set to,c) $dname 3 Set to did -a $+ $iif($1 == Don't Change,c) $dname 3 Don't Change if ($1 == Don't Change) did -m $dname 5 else did -ra $dname 4 $2 if ($3) did -a $dname 6 $3- } ; ----- Populate Preset settings on *:dialog:Away.Preset:init:*: { if (%Away.EditPreset) { var %pre = %Away.EditPreset, %trigger = $did(Custom.Aways,5).seltext var %edittype = $gettok($did(Custom.Aways,6).seltext,1,58), %nickedit = $gettok($did(Custom.Aways,6).seltext,2,58) var %reason = $did(Custom.Aways,7).seltext did -a $dname 3 %trigger did -a $+ $iif(%edittype == Prefix,c) $dname 5 Prefix did -a $+ $iif(%edittype == Suffix,c) $dname 5 Suffix did -a $+ $iif(%edittype == Set to,c) $dname 5 Set to did -a $+ $iif(%edittype == Don't Change,c) $dname 5 Don't Change if (%edittype == Don't Change) did -m $dname 6 else did -ra $dname 6 %nickedit if (%reason) did -a $dname 8 %reason } else { did -a $dname 5 Prefix did -a $dname 5 Suffix did -a $dname 5 Set to did -a $dname 5 Don't Change } } ; Exception initiation events on *:dialog:Away.Exceptions:init:*: { var %x = 1,%total = $ini(AwaySettings.ini,Exceptions,0) while (%x <= %total) { did -a $dname 3 $ini(AwaySettings.ini,Exceptions,%x) inc %x } } on *:dialog:Away.AddException:init:*: { if (%Away.Exception) { var %info = $readini(AwaySettings.ini,Exceptions,%away.Exception) var %scope = $gettok(%info,1,126), %options = $gettok(%info,2,126), %chans = $gettok(%info,3-,126) did -a $dname 3 %Away.Exception if (%scope == 1) { did -c $dname 6 did -b $dname 9 } else { did -c $dname 7 did -b $dname 12,15 did -e $dname 9 did -a $dname 9 %chans } if ($left(%options,1) == 1) && (%scope == 1) did -c $dname 12 if ($mid(%options,2,1) == 1) did -c $dname 13 if ($mid(%options,3,1) == 1) did -c $dname 14 if ($right(%options,1) == 1) && (%scope == 1) did -c $dname 15 } else { did -c $dname 6 did -b $dname 9 } } ; ############################################## ; # Dialog Sclick Events # ; ############################################## ; ----- Open Time Help dialog on *:dialog:Away.Help.13:sclick:3: { dialog $iif($dialog(Away.Help.Time),-o,-m) Away.Help.Time Away.Help.Time dialog -x $dname } ; ----- Select same line in each column in time help dialog on *:dialog:Away.Help.Time:sclick:*: { if ($did == 4) did -c $dname 5 $did(4).sel elseif ($did == 5) did -c $dname 4 $did(5).sel } ; ----- Processing clicks for main dialog on *:dialog:away:sclick:*: { ; Tab 100 if ($did == 3) { writeini AwaySettings.ini Config NickEditType $did(3).seltext if ($did(3).seltext == Prefix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickPrefix) elseif ($did(3).seltext == suffix) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSuffix) elseif ($did(3).seltext == Set to) did -nra $dname 5 $readini(AwaySettings.ini,Config,NickSetTo) else did -rm $dname 5 } if ($did == 7) && ($did(7).state == 0) did -m $dname 8 elseif ($did == 7) && ($did(7).state == 1) did -n $dname 8 elseif ($did == 11) && ($did(11).state == 0) did -m $dname 12 elseif ($did == 11) && ($did(11).state == 1) did -n $dname 12 elseif ($did == 14) && ($did(14).state == 0) did -b $dname 15 elseif ($did == 14) && ($did(14).state == 1) did -e $dname 15 elseif ($istok(6|10|13|16|21|26|34|40|44|48,$did,124)) dialog $iif($dialog($+(Away.Help.,$did)),-o,-m) $+(Away.Help.,$did) $+(Away.Help.,$did) elseif ($did == 22) dialog $iif($dialog(Custom.Aways),-o,-m) Custom.Aways Custom.Aways elseif ($did == 27) dialog $iif($dialog(Idle.Away.Settings),-o,-m) Idle.Away.Settings Idle.Away.Settings ; Tab 200 elseif ($did == 42) { if ($input(Retrieved the following hilights from your current mIRC settings: $crlf $crlf $+ $Get.Highlights $Crlf $crlf $+ Would you like to use these as your away system highlights? You can use the 'Modify Hilights' button to modify or add to these.,yi,Highlights)) { writeini AwaySettings.ini Config Hilights $Get.Highlights } } elseif ($did == 43) { var %hilights = $input(Enter Hilight words or identifiers seperated by commans ONLY. $crlf $+ Eg: $+($me,$chr(44),ALTNICK,$chr(44),$ $+ me),oe,Modify Hilights,$readini(AwaySettings.ini,n,Config,Hilights))) if (%hilights) writeini AwaySettings.ini Config Hilights $remove(%hilights,$chr(32)) else remini Settings.ini Away.Config Hilights } elseif ($did == 46) { dialog $iif($dialog(Away.Exceptions),-v,-m) Away.Exceptions Away.Exceptions } } ; ----- Process button clicks and keep selection of all columns the same in presets dialog on *:dialog:Custom.Aways:sclick:*: { if ($did == 5) did -c $dname 6,7 $did(5).sel elseif ($did == 6) did -c $dname 5,7 $did(6).sel elseif ($did == 7) did -c $dname 5,6 $did(7).sel elseif ($did == 8) dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings elseif ($did == 9) { if (!$did(5).sel) var %x = $input(Error: You must select an entry to delete,wo,Invalid Selection) elseif ($?!="Are you sure you want to delete this entry - $did(5).seltext ") { did -d $dname 5 $did(5).sel did -d $dname 6 $did(6).sel did -d $dname 7 $did(7).sel } } elseif ($did == 10) { if (!$did(5).sel) { var %x = $input(Error: You must select an entry to edit,wo,Invalid Selection) | halt } set %Away.EditPreset $did(5).sel dialog $iif($dialog(Away.Preset),-v,-m) Away.Preset Preset.Settings } elseif ($did == 12) { if ($input(Are you sure you want to clear all your presets?,qy,Validation Prompt)) { var %x = 7 while (%x > 0) { did -c $dname 5 %x if ($did(5).seltext) did -d $dname 5,6,7 $did(5).sel dec %x } } } } ; ----- Process Idle Away clicks/settings on *:dialog:Idle.Away.Settings:sclick:*: { var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60) if ($did == 3) { if ($did(3).seltext == Don't Change) did -rm $dname 4 else did -n $dname 4 } elseif ($did == 7) dialog $iif($dialog(Idle.Away.help),-v,-m) Idle.Away.help Idle.Away.Help } ; ----- Process Preset dialog clicks/settings on *:dialog:Away.Preset:sclick:*: { if ($did == 5) { if ($did(5).seltext == Don't Change) did -rm $dname 6 else did -n $dname 6 } elseif ($did == 9) dialog $iif($dialog(Preset.Help),-v,-m) Preset.Help Preset.Help } ; ----- Exception Clicks on *:dialog:Away.Exceptions:sclick:*: { if ($did == 6) dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException elseif ($did == 7) { if (!$did(3).sel) var %x = $input(You must select an entry to delete,wo,Invalid Selection) elseif ($?!="Are you sure you want to delete this entry - $did(3).seltext ") { remini AwaySettings.ini Exceptions $did(3).seltext did -d $dname 3 $did(3).sel } } elseif ($did == 8) { if (!$did(3).sel) var %x = $input(You must select an entry to edit,wo,Invalid Selection) else { set %Away.Exception $did(3).seltext set %Away.ExceptionNum $did(3).sel dialog $iif($dialog(Away.AddException),-v,-m) Away.AddException Away.AddException } } elseif ($did == 9) { if ($input(Are you sure you want to clear all your network exceptions?,qy,Validation Prompt)) { var %x = $did(3).lines remini AwaySettings.ini Exceptions while (%x > 0) { did -c $dname 3 %x if ($did(3).seltext) did -d $dname 3 $did(3).sel dec %x } } } } on *:dialog:Away.AddException:Sclick:*: { if ($did == 6) { did -e $dname 12,15 did -b $dname 9 did -r $dname 9 } elseif ($did == 7) { did -b $dname 12,15 did -e $dname 9 if ($did(12).state == 1) did -u $dname 12 if ($did(15).state == 1) did -u $dname 15 } } ; ############################################## ; # Dialog Close Events # ; ############################################## ; ----- Main dialog - save data on *:dialog:Away:close:*: { ; tab 100 settings if ($did(5)) { if ($did(3).seltext == Prefix) writeini AwaySettings.ini Config NickPrefix $did(5) elseif ($did(3).seltext == Suffix) writeini AwaySettings.ini Config NickSuffix $did(5) elseif ($did(3).seltext == Set to) writeini AwaySettings.ini Config NickSetTo $did(5) } else { writeini AwaySettings.ini Config NickPrefix Away| writeini AwaySettings.ini Config NickSuffix |Away } writeini AwaySettings.ini Config AutoAway $iif($did(7).state == 0,off,on) writeini AwaySettings.ini Config AutoAwayTime $iif($did(8),$calc($did(8) * 60),900) writeini AwaySettings.ini Config LeavingTime $iif($did(11).state == 0,off,on) writeini AwaySettings.ini Config LeavingTimeFormat $iif($did(12),$did(12),HH:nn:ss) writeini AwaySettings.ini Config TimeAway $iif($did(14).state == 0,off,on) writeini AwaySettings.ini Config TimeAwayFormat $iif($did(15),$did(15),Shorts) writeini AwaySettings.ini Config ARChannelMessage $iif($did(19).state == 0,off,on) writeini AwaySettings.ini Config ARPrivateMessage $iif($did(20).state == 0,off,on) if ($did(25)) writeini AwaySettings.ini Config DefaultMessage $did(25) else remini Settings.ini Away.Config DefaultMessage if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck elseif ($timer(Away.IdleCheck)) .timerAway.IdleCheck off ;Tab 200 settings writeini AwaySettings.ini Config MsgChans $iif($did(32).state == 0,off,on) writeini AwaySettings.ini Config MsgQueries $iif($did(33).state == 0,off,on) writeini AwaySettings.ini Config RespondHilights $iif($did(37).state == 0,off,on) writeini AwaySettings.ini Config RespondPM $iif($did(38).state == 0,off,on) writeini AwaySettings.ini Config RespondNotice $iif($did(39).state == 0,off,on) } ; ----- Save presets on *:dialog:Custom.Aways:close:*: { var %x = 1, %lines = $did(5).lines while (%x <= %lines) { did -c $dname 5,6,7 %x writeini AwaySettings.ini presets %x $+($did(5).seltext,~,$did(6).seltext,~,$did(7).seltext) inc %x } dec %x while (%x < 7) { inc %x if ($readini(AwaySettings.ini,presets,%x)) remini AwaySettings.ini Presets %x } } ; ----- Save Idle away settings on *:dialog:Idle.Away.Settings:close:*: { writeini AwaySettings.ini Config IdleSettings $+($did(3).seltext,~,$iif($did(4),$ifmatch,IDLE),~,$iif($did(6),$ifmatch,Auto away after % $+ time minutes idle)) } ; ----- Save Preset settings on *:dialog:Away.Preset:close:*: { var %pre = %away.EditPreset if (!$did(3)) var %x = $input(Error: No trigger was specified,ow,Input Error) elseif (!$did(6)) && ($did(5).seltext != Don't Change) var %x = $input(Error: You did not specify $iif($did(5).seltext,a nick $iif($did(5).seltext == set to,to change to,$ifmatch),any nick settings),ow,Input Error) elseif ($remove($did(6),$chr(91),$chr(93),$chr(92),$chr(45),$chr(95),$chr(123),$chr(124),$chr(125)) !isalnum) && ($did(6)) { var %x = $input(Error: Invalid Characters detected in specified nick,wo,Input Error) | halt } elseif (!$did(5).seltext) var %x = $input(Error: You have not specified how to change your nick - Select an option from the nick settings drop down,ow,Error) elseif ($numtok($did(3),32) > 1) || ($numtok($did(6),32) > 1) var %x = $input(Error: Trigger and nick Settings can each only be one word long,wo,Input Error) else { did $iif(%pre,-o,-a) Custom.Aways 5 $iif(%pre,%pre) $did(3) did $iif(%pre,-o,-a) Custom.Aways 6 $iif(%pre,%pre) $did(5).seltext $+ $iif($did(5).seltext != Don't Change,: $did(6)) did $iif(%pre,-o,-a) Custom.Aways 7 $iif(%pre,%pre) $did(8) unset %away.EditPreset } } ; ---- Save Exception settings on *:dialog:Away.AddException:close:*: { if (!$did(3)) var %x = $input(No Network name was entered,wo,Input Error) elseif ($numtok($did(3),32) > 1) var %x = $input(Network name may not contain spaces,wo,Input Error) else { var %scope = $iif($did(6).state == 1,1,2) var %x = 1, %numchans = $numtok($did(9),32) while (%x <= %numchans) { var %token = $gettok($did(9),%x,32) if (#?* iswm %token) var %chans = %chans %token elseif (%token != $chr(35)) var %chans = %chans $+($chr(35),%token) inc %x } var %x = 12 while (%x <= 15) { var %options = %options $+ $did(%x).state inc %x } did $iif(%Away.ExceptionNum,-o,-a) Away.Exceptions 3 $iif(%Away.ExceptionNum,$ifmatch) $did(3) writeini AwaySettings.ini Exceptions $did(3) $+(%scope,~,%options,~,%chans) unset %Away.Exception* } } ; ############################################## ; # /Away And /back aliases # ; ############################################## alias away { ; ----- Unset Idle timer, Get highlights, enable #away group for logging etc if ($timer(Away.IdleCheck)) .timerAway.IdleCheck off set %Away.Hilights $readini(awaySettings.ini,n,Config,Hilights) .enable #away ; ---- Retrieve away settings from config/User entry var %time = $calc($readini(AwaySettings.ini,Config,AutoAwayTime) / 60) if ($1) set %away.Reason $1- elseif ($readini(AwaySettings.ini,Config,DefaultMessage)) set %away.Reason $v1 set %Away.LeftAt $ctime if ($readini(AwaySettings.ini,Config,LeavingTime) == on) { var %LeavingTimeFormat = $readini(AwaySettings.ini,Config,LeavingTimeFormat) set %away.LeaveTime $time(%LeavingTimeFormat) } ; ---- Check for idleaway If ($1- = Auto.Idle.Away) { var %IdleInfo = $readini(AwaySettings.ini,Config,IdleSettings) var %edittype = $gettok(%IdleInfo,1,126) if (%edittype == Set to) var %nickset = $gettok(%IdleInfo,2,126) else var %nickadd = $gettok(%IdleInfo,2,126) set %Away.Reason $($gettok(%IdleInfo,3-,126),2) } else { var %edittype = $readini(AwaySettings.ini,Config,NickEditType) if (%edittype == Set To) var %nickset = $readini(AwaySettings.ini,Config,NickSetTo) else var %nickadd = $readini(AwaySettings.ini,Config,Nick $+ %edittype) } ; ----- Check for presets var %x 1 while (%x <= 7) { if ($readini(AwaySettings.ini,Presets,%x)) { var %preset = $v1 if ($1- == $gettok(%preset,1,126)) { var %edittype = $gettok($gettok(%preset,2,126),1,58) var %nickadd = $remove($gettok($gettok(%preset,2,126),2,58),$chr(32)) set %Away.Reason $gettok(%preset,3-,126) set %Away.Preset %x var %x = 7 } } inc %x } ; ----- Cycle Connections to change nick/send msg var %x = 1, %connections = $scon(0) while (%x <= %connections) { scon %x if ($status == connected) { unset %Except.* if ($readini(AwaySettings.ini,Exceptions,$network)) { var %Except.info = $v1 var %Except.Scope = $gettok(%Except.info,1,126) var %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126) if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1 if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1 } set $+(%,Away.Oldnick.,$network) $me if ($readini(AwaySettings.ini,Config,NickEditType) != Don't Change) && (!%Except.NoNickChange) { if (%edittype == Set To) && (%NickSet != $me) var %newnick = %NickSet if (%edittype == Prefix) && ($+(%nickadd,*) !iswm $me) var %newnick = $+(%nickadd,$me) if (%edittype == Suffix) && ($+(*,%nickadd) !iswm $me) var %newnick = $+($me,%nickadd) set $+(%,Away.Newnick.,$network) $iif(%newnick,$ifmatch,$me) if (%newnick) nick %newnick } if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) { amsg 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) } if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg) { qmsg 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) } !away 7[14Away7] $iif(%Away.Reason,14Reason:07 %Away.Reason) $iif(%Away.leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) } inc %x } } alias back { var %x = 1, %connections = $scon(0) while (%x <= %connections) { scon %x if ($status == connected) { unset %Except.* if ($readini(AwaySettings.ini,Exceptions,$network)) { var %Except.info = $v1 var %Except.Scope = $gettok(%Except.info,1,126) var %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 2) && ($mid(%Except.Options,2,1) == 1) var %Except.NoMsgChans = $gettok(%Except.Info,3-,126) if (%Except.Scope == 1) && ($left(%Except.Options,1) == 1) var %Except.NoNickChange = 1 if (%Except.Scope == 1) && ($mid(%Except.Options,2,1) == 1) var %Except.NoAwayMsg = 1 } if (!%Except.NoNickChange) && ($($+(%,Away.Oldnick.,$network),2)) nick $ifmatch ; ----- Cycle Connections to change nick/send msg if ($chan(0)) && ($readini(AwaySettings.ini,Config,MsgChans) == on) && (!%Except.NoAwayMsg) { amsg 7[14Back7] $iif(%away.Reason,14From:07 %Away.Reason) $iif(%Away.Leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) $iif($Away.GoneFor,14Gone for:07 $Away.GoneFor) } if ($readini(AwaySettings.ini,Config,MsgQueries) == on) && (!%Except.NoAwayMsg) { qmsg 7[14Back7] $iif(%away.Reason,14From:07 %Away.Reason) $iif(%Away.Leavetime,14Left at:07 %Away.Leavetime (14+1 GMT7)) $iif($Away.GoneFor,14Gone for:07 $Away.GoneFor) } !away } inc %x } .disable #away unset %away.* if ($hget(Away.PM.Responses)) || ($hget(Away.Highlight.Responses)) hfree -w Away.*.Responses if ($readini(AwaySettings.ini,Config,AutoAway) == on) .timerAway.IdleCheck -o 0 30 Away.IdleCheck } ; ############################################## ; # Other Aliases # ; ############################################## alias -l Away.Gonefor { if ($readini(AwaySettings.ini,Config,TimeAway) == on) { var %TimeAwayFormat = $readini(AwaySettings.ini,Config,TimeAwayFormat) if (%Away.LeftAt) { var %duration = $duration($calc($ctime - %Away.LeftAt),%TimeAwayFormat) if (%TimeAwayFormat == Short) return $Short.Duration(%duration) elseif (%TimeAwayFormat == medium) return %duration elseif (%TimeAwayFormat == long) return $Long.Duration(%duration) } } else return $false } alias -l Short.Duration return $replacex($1-,secs,s,sec,s,mins,m,min,m,hrs,h,hr,h,days,d,day,d,wks,w,wk,w) alias -l Long.Duration return $replacex($1-,sec,second,secs,seconds,min,minute,mins,minutes,hr,hour,hrs,hours,wk,week,wks,weeks) alias -l Get.Highlights { var %x = 1, %Groups = $ini(mirc.ini,highlight,0) while (%x <= %groups) { var %Away.Highlights = $addtok(%Away.highlights,$highlight(%x),44) inc %x } return %Away.Highlights } alias -l Check.For.highlights { if (!%Away.Highlights) set %Away.Highlights $readini(AwaySettings.ini,n,Config,Hilights) var %x = 1, %highlights = $numtok(%Away.highlights,44) while (%x <= %highlights) { var %chighlight = $($gettok(%Away.Highlights,%x,44),2) if ($istok($1-,%chighlight,32)) return %chighlight inc %x } return $false } alias -l Away.Logwin { if (!$window(@Away.Logs)) window -eknz @Away.Logs echo -ti2 @Away.Logs $1- } alias -l Highlight.Response { if (!$hget(Away.highlight.Responses,$+($1,.,$2))) { scid $1 .notice $2 7[14Away7] $iif(%Away.Reason,14Reason:7 %Away.Reason) $iif(%Away.LeaveTime,14Left at:07 %Away.LeaveTime (14+1 GMT7)) $iif($away.gonefor,14Gone for:07 $away.gonefor) hadd -m Away.Highlight.Responses $+($1,.,$2) 1 } } alias -l Private.Message.Response { if (!$hget(Away.PM.Responses,$+($1,.,$2))) { scid $1 .msg $2 7[14Away7] $iif(%Away.Reason,14Reason:7 %Away.Reason) $iif(%Away.LeaveTime,14Left at:07 %Away.LeaveTime (14+1 GMT7)) $iif($away.gonefor,14Gone for:07 $away.gonefor) hadd -m Away.PM.Responses $+($1,.,$2) 1 } } alias -l Away.IdleCheck { var %x = 1, %networks = $scon(0) var %AutoAwayTime = $readini(AwaySettings.ini,Config,AutoAwayTime) while (%x <= %networks) { scon %x { if ($status == Connected) && ($idle < %AutoAwayTime) var %Idle = off } inc %x } if (%idle != off) away Auto away } alias Away.Config dialog $iif($dialog(Away),-v,-m) Away Away ; ############################################## ; # Logging and hilight resposes # ; ############################################## #away off ;Hilight responses on *:text:*:#: { if (!$Check.For.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return if ($nick == [DM]) halt else { Away.Logwin 4[10CHANNEL MESSAGE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) $1- if ($readini(AwaySettings.ini,Exceptions,$network)) { var -s %Except.info = $v1 var -s %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126) elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return } if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick } } on *:action:*:#: { if (!$check.for.highlights($1-)) && (!$istok($1-,$me,32)) && (!$istok($1-,$($+(%,Away.Oldnick.,$network),2),32)) return else { Away.Logwin 4[10CHANNEL  10ACTION4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),$chan,12/10,$nick,4]) * $nick $1- if ($readini(AwaySettings.ini,Exceptions,$network)) { var %Except.info = $v1 var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126) elseif (%Except.Scope == 1) && ($mid(%Except.Options,3,1) == 1) return } if (!$istok(%Except.NoHilight,$chan,32)) && ($readini(AwaySettings.ini,Config,RespondHilights) == on) Highlight.Response $cid $nick } } ; Private notice response on *:notice:*:?: { if (*serv !iswm $nick) { Away.Logwin 4[10PRIVATE NOTICE4] $+(4[10,$iif($scon(0) > 1,$+($network,12/10)),Private,12/10,$nick,4]) $1- if ($readini(AwaySettings.ini,Exceptions,$network)) { var %Except.info = $v1 var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return } if ($readini(AwaySettings.ini,Config,RespondNotice) == on) Private.Message.Response $cid $nick } } ;PM responses on *:text:*:?: { if ($readini(AwaySettings.ini,Config,RespondPM) == on) && (*serv !iswm $nick) { if ($readini(AwaySettings.ini,Exceptions,$network)) { var %Except.info = $v1 var %Except.Scope = $gettok(%Except.info,1,126), %Except.Options = $gettok(%Except.info,2,126) if (%Except.Scope == 2) && ($mid(%Except.Options,3,1) == 1) var %Except.NoHilight = $gettok(%Except.Info,3-,126) elseif (%Except.Scope == 1) && ($right(%Except.Options,1) == 1) return } Private.Message.Response $cid $nick } } ;Return from away on input if set on *:input:#: { if ($left($1,1) != $readini(mirc.ini,text,commandchar)) { if ($readini(AwaySettings.ini,Config,ARChannelMessage) == on) back } } on *:input:?: { if ($left($1,1) != $readini(mirc.ini,text,commandchar)) { if ($readini(AwaySettings.ini,Config,ARPrivateMessage) == on) back } } #away end alias reset.away { set %away.LeaveTime $time set %Away.LeftAt $ctime echo -ta Reset away }
details of this paste

Note: Only the paste content is required, though a Name for it is useful.
Description / Question:	
Content Type:	
Expire this post in:	
Name/Title:	(if left blank, it will be set for you randomly)
	Save this name/title in a cookie?
	

Please note that information posted here will not expire by default. If you want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that aren't marked to expire will be indexable by search engines. Be careful with your passwords.
W3CXHTML
W3CCSS
services provided and written by NetMonks Consulting Corporation