Guest User

Untitled

a guest
Mar 9th, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 12.75 KB | None | 0 0
  1. /*
  2. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  3. ¦¦                                                ¦¦
  4. ¦¦ AWAY SCRIPT by jsz                             ¦¦
  5. ¦¦                                                ¦¦
  6. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  7. */
  8.  
  9. alias away.intro {
  10.   set %away.version 3.0.2
  11.   set %away.dflt.namediv $chr(124)
  12.   echo -a 
  13.   echo -a Away Script v $+ %away.version Successfully Loaded!
  14.   echo -a Copyright © 2005- $+ $date(yyyy). All Rights Reserved
  15.   echo -a Written by: 14jsz Email: 14synth.seven@gmail.com
  16.   echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu.
  17.   echo -a For usage syntax, /away.help - easy for setting an away you will only use once, so you don't have to save it
  18.   echo -a 
  19. }
  20.  
  21. alias away.help {
  22.   echo -a 
  23.   echo -a Usage: /away 03<nicksuffix> 07<away reason>
  24.   echo -a Ex: /away 03away 07I am currently away -- this would change your nick to '<currentname>|away' and your away reason as 'I am currently away'.
  25.   echo -a Ex: /away 03* 07I am currently away -- If you wish to have only an <away reason> and no <nicksuffix>, use a * in place of <nicksuffix>.
  26.   echo -a Ex: /away 03away -- If you only supply a <nicksuffix>, your nick will be '<currentname>|away' and your default reason will be used.
  27.   echo -a Ex: /away -- If no <nicksuffix> or <away reason> is supplied, your defaults will be used for both.
  28.   echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu.
  29.   echo -a 
  30. }
  31.  
  32. on *:LOAD: {
  33.   away.intro
  34.   dialog -m away.config away.config
  35. }
  36.  
  37. on *:CONNECT: {
  38.   if ($network == synIRC) && (%away.auto.enabled == 1) {
  39.     if (!%away.temp.reason) {
  40.       away.autostart
  41.     }
  42.   }
  43.   if (%away.temp.reason) & (!$away) {
  44.     !.away %away.temp.reason (since %away.temp.gonesince $+ )
  45.   }
  46. }
  47.  
  48. alias away.autostart {
  49.   .timer(AutoAway) 0 15 away.autoawaycheck
  50. }
  51.  
  52. alias away.autoawaycheck {
  53.   if ($idle > $calc(%away.auto.time * 60*60)) && (!%away.temp.reason) {
  54.     away %away.auto.nick $replace(%away.auto.away,$(%t,0), $+ %away.auto.time)
  55.     .timer(AutoAway) off
  56.   }
  57. }
  58.  
  59. alias away {
  60.   if (%away.auto.enabled == 1) .timer(AutoAway) off
  61.   if (!%away.temp.reason) {
  62.     if (%away.timesetting == 12) {
  63.       if (%away.showampm == 1) set %away.temp.gonesince $time(mmm. dd yyyy hh:nntt)
  64.       elseif (%away.showampm == 0) set %away.temp.gonesince $time(mmm. dd yyyy hh:nn)
  65.     }
  66.     if (%away.timesetting == 24) set %away.temp.gonesince $time(mmm. dd yyyy HH:nn)
  67.     if (!$1 && !$2-) {
  68.       set %away.temp.reason %away.dflt.away
  69.       set %away.temp.nick %away.dflt.nick
  70.       !.away %away.dflt.away (since %away.temp.gonesince $+ )
  71.     }
  72.     elseif ($1 && !$2-) {
  73.       set %away.temp.reason %away.dflt.away
  74.       set %away.temp.nick $1
  75.       !.away %away.dflt.away (since %away.temp.gonesince $+ )
  76.     }
  77.     else {
  78.       set %away.temp.reason $2-
  79.       set %away.temp.nick $1
  80.       !.away $2- (since %away.temp.gonesince $+ )
  81.     }
  82.     set %away.temp.time $ctime
  83.     describe # is away: $+(,%away.temp.reason,) $+($chr(40),left %away.temp.gonesince,$chr(41))
  84.     if (%away.changenick == 1) {
  85.       set %away.temp.oldnick $me
  86.       set %away.temp.newnick %away.temp.oldnick $+ %away.dflt.namediv $+ %away.temp.nick
  87.       nick %away.temp.oldnick $+ %away.dflt.namediv $+ %away.temp.nick
  88.     }
  89.   }
  90.   else {
  91.     dialog -m away.errorwindow away.errorwindow
  92.     did -a away.errorwindow 1 You are already away
  93.   }
  94. }
  95.  
  96. alias back {
  97.   if (%away.temp.reason) {
  98.     !.away
  99.     describe # is back from: $+(,%away.temp.reason,) $+($chr(40),gone $duration($calc($ctime - %away.temp.time)),$chr(41))
  100.     if (%away.changenick == 1) nick %away.temp.oldnick
  101.     unset %away.temp.*
  102.     if (%away.auto.enabled == 1) {
  103.       resetidle 0
  104.       away.autostart
  105.     }
  106.   }
  107.   else {
  108.     dialog -m away.errorwindow away.errorwindow
  109.     did -a away.errorwindow 1 You are not away
  110.   }
  111. }
  112.  
  113. dialog away.editor {
  114.   title "Away Reason Editor"
  115.   size -1 -1 97 124
  116.   option dbu
  117.   text "Away Title:", 1, 8 8 50 9
  118.   text "Away Nick Suffix:", 2, 8 32 50 9
  119.   text "Away Reason", 3, 8 56 50 9
  120.   edit "", 4, 8 16 81 10, autohs limit 16
  121.   edit "", 5, 8 40 80 10, autohs limit 16
  122.   edit "", 6, 8 64 81 32, multi
  123.   button "Save", 7, 32 102 34 15, ok
  124. }
  125.  
  126. dialog away.errorwindow {
  127.   title "Away Script"
  128.   size -1 -1 101 35
  129.   option dbu
  130.   text "", 1, 6 6 88 9, center
  131.   button "Close", 2, 31 18 39 13, ok
  132. }
  133.  
  134. dialog away.helpdialog {
  135.   title "Away Script"
  136.   size -1 -1 124 53
  137.   option dbu
  138.   text "", 1, 6 8 111 21
  139.   button "Close", 2, 42 34 39 13, ok
  140. }
  141.  
  142. dialog -l away.config {
  143.   title "Away Script Config"
  144.   size -1 -1 215 151
  145.   option dbu
  146.   tab "General", 33, 1 1 213 124
  147.   tab "Away Messages", 34
  148.   tab "Auto-Away", 54
  149.   tab "About", 65
  150.   check "Change nick on away?", 1, 9 55 70 10, tab 33
  151.   text "Default away reason:", 2, 108 30 82 8, tab 33
  152.   edit "", 3, 107 39 92 29, tab 33 autovs multi
  153.   text "Default away nick:", 4, 108 71 82 8, tab 33
  154.   edit "", 5, 107 80 92 11, tab 33
  155.   button "Save and OK", 6, 177 135 34 12, ok
  156.   box "General", 8, 5 20 89 50, tab 33
  157.   text "Permanent Nickname:", 9, 10 32 65 8, tab 33
  158.   edit "", 10, 9 42 76 11, tab 33
  159.   box "Default Away Settings", 12, 97 20 112 104, tab 33
  160.   box "Current Away Messages", 36, 2 20 89 104, tab 34
  161.   list 37, 8 31 77 78, tab 34 vsbar
  162.   box "Away Details", 40, 97 20 112 104, tab 34
  163.   button "Add New", 41, 8 106 77 14, tab 34
  164.   text "", 43, 101 39 100 8, tab 34
  165.   text "", 44, 101 61 100 21, tab 34
  166.   text "Nick Change:", 45, 101 31 50 8, tab 34
  167.   text "Away Reason:", 46, 101 53 50 8, tab 34
  168.   button "Delete", 47, 133 109 29 9, tab 34
  169.   button "Edit", 48, 101 109 29 9, tab 34
  170.   button "Cancel", 49, 139 135 34 12, cancel
  171.   box "Time Setting", 51, 5 76 89 48, tab 33
  172.   radio "12 hour time (ex. 1:23pm)", 52, 11 88 77 8, tab 33
  173.   radio "24 hour time (ex. 13:23)", 53, 11 110 77 8, tab 33
  174.   text "-[ Auto-Away ]-", 55, 61 20 92 8, tab 54 center
  175.   text "With this enabled, if you are idle in IRC for X number of hours, you will automatically be set as 'away'.", 56, 6 32 199 14, tab 54
  176.   check "Enable Auto-Away?", 57, 6 50 89 8, tab 54
  177.   edit "", 58, 10 71 17 10, tab 54
  178.   text "hours before auto-away is set", 59, 30 72 119 8, tab 54
  179.   box "Auto-Away Settings", 60, 5 61 203 63, tab 54
  180.   text "Auto-Away nick:", 61, 10 86 49 8, tab 54
  181.   edit "", 62, 62 85 50 10, tab 54
  182.   text "Auto-Away reason:", 63, 10 98 49 8, tab 54
  183.   edit "", 64, 62 97 139 22, tab 54 autovs multi
  184.   text "", 66, 10 25 144 8, tab 65
  185.   text "© Copyright 2005-2006. All Rights Reserved.", 67, 10 34 144 8, tab 65
  186.   text "Written by jsz", 68, 10 43 144 8, tab 65
  187.   text "Email: synth.seven@gmail.com", 70, 22 52 87 8, tab 65
  188.   text "AIM: this is jsz", 71, 22 61 87 8, tab 65
  189.   text "Bug? Error? Write me at synth.seven@gmail.com", 72, 4 137 128 8
  190.   text "These are your defaults if you do not set them when using the /away command.", 73, 102 96 102 24, tab 33 center
  191.   check "Show am/pm?", 76, 22 98 50 8, tab 33
  192.   button "help", 77, 35 107 23 8, tab 54
  193. }
  194.  
  195. alias away.config.awaylist {
  196.   var %i = 1
  197.   while (%i <= $ini(synaway.ini,AWAYS,0)) {
  198.     did -a away.config 37 $ini(synaway.ini,AWAYS,%i)
  199.     inc %i
  200.   }
  201. }
  202.  
  203. on *:DIALOG:*:*:*: {
  204.   if ($dname = away.config) {
  205.     if ($devent = init) {
  206.       did -a $dname 66 Away Script v $+ %away.version
  207.       did -a $dname 10 $iif(%away.mainnick,%away.mainnick,$me)
  208.       if (%away.changenick == 1) did -c $dname 1
  209.       if (%away.dflt.away) did -a $dname 3 $ifmatch
  210.       if (%away.dflt.nick) did -a $dname 5 $ifmatch
  211.       if (%away.timesetting == 12) did -c $dname 52
  212.       if (%away.timesetting == 24) { did -c $dname 53 | did -b $dname 76 }
  213.       if (%away.showampm == 1) did -c $dname 76
  214.       away.config.awaylist
  215.       did -b $dname 47,48
  216.       if (%away.auto.enabled == 1) did -c $dname 57
  217.       if (%away.auto.enabled != 1) did -m $dname 58,62,64
  218.       if (%away.auto.time) did -a $dname 58 $ifmatch
  219.       if (%away.auto.nick) did -a $dname 62 $ifmatch
  220.       if (%away.auto.away) did -a $dname 64 $ifmatch
  221.     }
  222.     if ($devent = sclick) {
  223.       if ($did = 6) {
  224.         set %away.changenick $iif($did($dname,1).state == 1,1,0)
  225.         if ($did($dname,3).text) set %away.dflt.away $ifmatch
  226.         if ($did($dname,5).text) set %away.dflt.nick $ifmatch
  227.         if ($did($dname,10).text) set %away.mainnick $ifmatch
  228.         if ($did($dname,52).state == 1) set %away.timesetting 12
  229.         if ($did($dname,53).state == 1) set %away.timesetting 24
  230.         set %away.showampm $iif($did($dname,76).state == 1,1,0)
  231.         if ($did($dname,57).state == 1) {
  232.           set %away.auto.enabled 1
  233.           away.autostart
  234.         }
  235.         if ($did($dname,57).state != 1) {
  236.           set %away.auto.enabled 0
  237.           .timer(AutoAway) off
  238.         }
  239.         if ($did($dname,58).text) set %away.auto.time $ifmatch
  240.         if ($did($dname,62).text) set %away.auto.nick $ifmatch
  241.         if ($did($dname,64).text) set %away.auto.away $ifmatch
  242.         if ($did($dname,58).text != %away.auto.time) away.autostart
  243.       }
  244.       if ($did = 37) {
  245.         did -e $dname 47,48
  246.         var %nick = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32)
  247.         var %reason = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32)
  248.         if ($did($dname,37).seltext) {
  249.           did -a $dname 43 %away.mainnick $+ %nick
  250.           did -a $dname 44 %reason
  251.         }
  252.       }
  253.       if ($did = 41) {
  254.         dialog -m away.editor away.editor
  255.       }
  256.       if ($did = 47) {
  257.  
  258.         var %awayname = $ini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,$did($dname,37).seltext))
  259.         var %confirm = $input(Are you sure you want to delete the ' $+ %awayname $+ ' away message?,y,Delete away)
  260.         if (%confirm = $true) {
  261.           remini synaway.ini AWAYS %awayname
  262.           did -r $dname 37,43,44
  263.           away.config.awaylist
  264.         }
  265.       }
  266.       if ($did = 48) {
  267.         dialog -m away.editor away.editor
  268.         did -a away.editor 4 $did($dname,37).seltext
  269.         did -b away.editor 4
  270.         did -a away.editor 5 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32)
  271.         did -a away.editor 6 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32)
  272.       }
  273.       if ($did = 52) did -e $dname 76
  274.       if ($did = 53) did -b $dname 76
  275.       if ($did = 57) {
  276.         if ($did($dname,57).state = 1) did -n $dname 58,62,64
  277.         else { did -m $dname 58,62,64 }
  278.       }
  279.       if ($did = 77) {
  280.         dialog -m away.helpdialog away.helpdialog
  281.         did -a away.helpdialog 1 $(%t,0) = auto-away length (hours)
  282.       }
  283.     }
  284.   }
  285.   if ($dname = away.editor) {
  286.     if ($devent = sclick) {
  287.       if ($did = 7) {
  288.         if ($numtok($did($dname,4).text,32) = 1) && ($numtok($did($dname,5).text,32) = 1) {
  289.           writeini synaway.ini AWAYS $gettok($did($dname,4).text,1,32) $gettok($did($dname,5).text,1,32) $gettok($did($dname,6).text,1-,32)
  290.           did -a away.config 37 $did($dname,4).text
  291.           if ($dialog(away.config)) {
  292.             did -r away.config 37
  293.             away.config.awaylist
  294.           }
  295.         }
  296.         elseif ($numtok($did($dname,4).text,32) >= 2) {
  297.           dialog -x away.editor
  298.           dialog -m away.editor away.editor
  299.           dialog -m away.errorwindow away.errorwindow
  300.           did -a away.errorwindow 1 'Away Title' may only be one word
  301.         }
  302.         elseif ($numtok($did($dname,5).text,32) >= 2) {
  303.           dialog -x away.editor
  304.           dialog -m away.editor away.editor
  305.           dialog -m away.errorwindow away.errorwindow
  306.           did -a away.errorwindow 1 'Away Nick Suffix' may only be one word
  307.         }
  308.       }
  309.     }
  310.   }
  311. }
  312.  
  313. menu channel,status {
  314.   Away Script %away.version
  315.   .$iif($away == $true,$null,$style(2)) Back:/back
  316.   .$submenu($awayreasons($1))
  317.   .-
  318.   .Configuration:/dialog -m away.config away.config
  319.   .Unload Script {
  320.     var %confirm = $input(Are you sure you want to unload Away Script %away.version $+ ? All settings and away messages will be lost.,yv,Unload?)
  321.     if (%confirm = $yes) {
  322.       .timer 1 0 echo -a Unloading Away Script v $+ %away.version $+ ...please wait...
  323.       .timer 1 1 .unload -rs " $+ $script $+ " | .unset %away.* | .timer(AutoAway) off | .remove $+(",$mircdir,synaway.ini,")
  324.       .timer 1 2 echo -a Done! Away Script v $+ %away.version Unloaded.
  325.     }
  326.   }
  327. }
  328.  
  329. alias awayreasons {
  330.   var %i 1
  331.   if ($1 == begin) return -
  332.   while (%i <= $ini(synaway.ini,AWAYS,0)) {
  333.     if ($1 == %i) return $ini(synaway.ini,AWAYS,%i) $+ : /away $readini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,%i))
  334.     inc %i
  335.   }
  336.   if ($1 == end) return -
  337. }
Add Comment
Please, Sign In to add comment