mIRC Homepage
Posted By: DragonRyder Acro Script - 26/03/20 08:34 PM
the script has been worked on and modded over time. I am looking for help to add in a setting to enable/disable acros by channel and not just by the network.
If anyone can assist in this it is greatly appreciated.
Code
[Addon]
Script=DragonRyder Acro Manager
Version=8.1
Author=DragonRyder Development Team
Desc=Provides PreDefined Acronym's For DragonRyder v13.5 Script
For=DragonRyder v13.5
Date=May 10th 2013

on *:load: {
  echo -s 12================================================
  echo -s 15-=  DragonRyder Acro Manager Loaded.  =-
  echo -s 12================================================
}

on *:unload: {
  echo -s 12================================================
  echo -s 15-=  DragonRyder Acro Manager Unloaded.  =-
  echo -s 12================================================
}

on *:input:*:{
  ;echo -a $active / $target

  ;--mircs readini for the set command char (Normally '/')
  var %cr = $readini($mircini,text,commandchar)

  if ( $1 == /ctcp ) {
    %trigger = $1-
  }
  elseif (!$inpaste && (($active != Status Window && ($left($1,1) != %cr || $istok(/me /ame /msg /amsg /say /query /onotice /omsg /notice,$1,32))))) {
    ;--Acros: check network, and if allowed,
    ;--       replace all found acros using
    ;--       '$acro.chknt()'.. 
    tokenize 32 $acro.chknt($network,$1-)

    var %drdevacros = $null
    var %drdevn = 1


    if $istok(/me /ame /msg /amsg /say /query /onotice /omsg /notice,$gettok($1-,%drdevn,32),32) {
      %drdevacros = $gettok($1-,%drdevn,32)
      inc %drdevn
      ;-----------------
      if ($gettok($1-,%drdevn,32) == $null) {
        echo -ag 15* %drdevacros $+ : insufficient parameters
        halt
      }
      if (%drdevacros == /query) {
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32)
        inc %drdevn
      }
      ;-----------------
      elseif (%drdevacros == /onotice && $left($gettok($1-,%drdevn,32),1) == $chr(35)) {
        if ($me !ison $gettok($1-,%drdevn,32)) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : you're not on that channel
          halt
        }
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32) 04
        inc %drdevn
      }
      elseif (%drdevacros == /onotice && $left($gettok($1-,%drdevn,32),1) != $chr(35)) {
        if ($me !ison $active) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : you're not on a channel
          halt
        }
        %drdevacros = %drdevacros 04
      }
      ;-----------------
      elseif (%drdevacros == /omsg && $left($gettok($1-,%drdevn,32),1) == $chr(35)) {
        if ($me !ison $gettok($1-,%drdevn,32)) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : you're not on that channel
          halt
        }
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32) 04
        inc %drdevn
      }
      elseif (%drdevacros == /omsg && $left($gettok($1-,%drdevn,32),1) != $chr(35)) {
        if ($me !ison $active) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : you're not on a channel
          halt
        }
        %drdevacros = %drdevacros 04
      }
      ;-----------------
      elseif (%drdevacros == /notice) {
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32) 04
        inc %drdevn
        if ($gettok($1-,%drdevn,32) == $null) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : insufficient parameters...
          halt
        }
      }
      ;-----------------
      elseif (%drdevacros == /msg) {
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32)
        inc %drdevn
        if ($gettok($1-,%drdevn,32) == $null) {
          echo -ag 15* $gettok(%drdevacros,1,32) $+ : insufficient parameters....
          halt
        }
      }
    }
    ;-----------------
    else {
      %drdevacros = /say
    }

    ;-----------------
    while ($gettok($1-,%drdevn,32) != $null) {
      if ($gettok($1-,%drdevn,32) == $chr(59)) {
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32)
      }

      elseif ($right($gettok($1-,%drdevn,32),1) == $chr(59)) {
        var %drdevnicktest = $left($gettok($1-,%drdevn,32),-1)
        if (%drdevnicktest ison # || $active == %drdevnicktest) {
          %drdevacros = %drdevacros  %dev_acro_f $+ « $+  $+ %dev_acro_s $+ %drdevnicktest $+  %dev_acro_f $+ »
        }
        else {
          %drdevacros = %drdevacros $gettok($1-,%drdevn,32)
        }
      }

      else {
        %drdevacros = %drdevacros $gettok($1-,%drdevn,32)
      }
      inc %drdevn
    }
    ;-----------------
    if ($1-2 == /me humps) {
      if ($readini(settings.ini,n,settings,counthumps)) {
        var %humpcount = $calc($readini(settings.ini,n,info,humpcount) + 1)
        %drdevacros = %drdevacros $+($chr(40),$chr(35),%humpcount,$chr(41))
        writeini -n settings.ini info humpcount %humpcount
      }
    }
    ;-----------------
    if ($numtok(%drdevacros,32) > 1) {
      %drdevacros
    }
    haltdef
  }
}

raw 353:*:{ haltdef }

raw 366:*:{ haltdef }

menu channel {
  ;  DragonAcro Color Blends:dialog -m dr_dev_acro_colors dr_dev_acro_colors
  DragonAcro Manager
  .Acro Manager:dialog -m dr_dev_acro_man dr_dev_acro_man
  .-
  .$iif($acro.chknt($network).menua,Allow,Disallow) Global Acros:echo -a $acro.chknt($network,$iif($acro.chknt($network).menua,$true,$false)).updatea
  .$iif($acro.chknt($network).menun,Allow,Disallow) Network Acros:echo -a $acro.chknt($network,$iif($acro.chknt($network).menun,$true,$false)).updaten
  -
}
dialog dr_dev_acro_colors {
  title "DragonAcro Color Blends"
  size -1 -1 165 25
  option dbu
  combo 1, 2 11 60 50, drop
  combo 2, 64 11 60 50, drop
  text "First Color", 3, 2 2 59 8, center
  text "Second Color", 4, 64 2 59 8, center
  button "Set Colors", 5, 126 4 37 18
}
on *:dialog:dr_dev_acro_colors:*:*: {
  if ($devent == init) {
    var %c = White:Black:Blue:Green:Red:Brown:Purple:Orange:Yellow:Neon Green:Cyan:Light Cyan:Light Blue:Pink:Grey:Light Grey
    didtok $dname 1,2 58 %c | did -c $dname 1,2 1
  }
  elseif ($devent == sclick) {
    if ($did == 5) {
      var %f = $base($calc($did($dname,1).sel - 1),10,10,2), %s = $base($calc($did($dname,2).sel - 1),10,10,2)
      set %dev_acro_f $+($chr(3),%f) | set %dev_acro_s $+($chr(3),%s)
    }
  }
}
;
;EOF


;--------------------------------------------------------------------


alias mdxm { return System\Dlls\mdx\MDX.DLL }
alias dlgdll { return System\Dlls\mdx\dialog.mdx }
alias mdxsetmark { dll $mdxm SetMircVersion $version | dll $mdxm MarkDialog $1 $dialog($1).hwnd }
alias mdxsetcont { dll $mdxm SetControlMDX $1 $2- }

on *:start: { acro.load }
alias acro.load {
  var %hg = $acrtbl
  if (!$hget(%hg)) {
    hmake %hg 100
    if ($exists($acrdf)) { hload %hg $acrdf | echo -ast * 03Loaded Acronym Data. }
    else { echo -ast 04* Error: Acro Data File Not Found. }
  }
}
alias acrtbl { return dr_acro_data }
alias acrdf { return $qt($+($scriptdir,$acrtbl,.hs)) }
alias acro.chknt {
  var %f = settings.ini, %t = acro_cknet_dis, %n = $1, %txt = $2-, %ri = $readini(%f,%t,networks)

  if ($prop == updatea) { writeini -n %f %t active $iif($2,1,0) | return Acronyms are now $iif($2,03Allowed,04Disallowed) Globaly }
  if (!$readini(%f,%t,active)) { if ($prop == menua) { return $true } | return %txt }
  if ($prop == menua) { return $false }

  if ($prop == updaten) { writeini -n %f %t networks $iif($2,$remtok(%ri,%n,44),$addtok(%ri,%n,44)) | return Acronyms are now $iif($2,03Allowed,04Disallowed) on $+(,%n,.) }
  if ($istok(%ri,%n,44)) { if ($prop == menun) { return $true } | return %txt }
  if ($prop == menun) { return $false }

  return $acro.chk(%txt)
}
alias acro.chk { var %t = $1-, %r = $regsubex($str(.,$numtok(%t,32)),/./g,$acro.rchk($gettok(%t,\n,32)) $+ $chr(32)) | return %r }
alias acro.rchk { if ($hget($acrtbl,$+($crc($1,0),.,$1))) { return $acro.repc($v1) } | else { return $1 } }
alias acro.repc {
  var %t = $1-, %rgx = \x80-\xFFa-zA-Z-\?\'\\08
  var %t = $regsubex(%t,/\\1([ $+ %rgx $+ ]+)/g,$+(%dev_acro_f,\1))
  var %t = $regsubex(%t,/\\2([ $+ %rgx $+ ]+)/g,$+(%dev_acro_s,\1))
  var %t = $regsubex(%t,/\\b([ $+ %rgx $+ ]+)/g,$+(,\1,))
  var %t = $regsubex(%t,/\\i([ $+ %rgx $+ ]+)/g,$+(,\1,))
  var %t = $regsubex(%t,/\\u([ $+ %rgx $+ ]+)/g,$+(,\1,))
  if ($count($(%t,2),$chr(3))) { var %t = $+(%t,$chr(3)) } | return %t
}
alias zpdr { return $base($1,10,10,2) }
alias dcrc { return $+($crc($$1,0),.,$$1) }

dialog dr_dev_acro_man {
  title "DragonAcro Manager"
  size -1 -1 181 186
  option dbu
  button "Button", 8, 84 55 85 30
  box "Colors", 3, 84 103 91 61
  box "Acronyms", 9, 6 32 169 132
  radio "First (\1)", 2, 88 130 40 10
  radio "Second (\2)", 4, 129 130 40 10, left
  combo 1, 89 113 79 50, drop
  button "Set Color", 5, 95 146 67 11
  combo 7, 11 41 67 118, sort edit
  edit "", 6, 84 41 85 10, multi autohs
  button "Set/Add", 10, 93 89 33 11
  button "Delete", 12, 127 89 33 11
  box "Disabled Networks", 13, 6 6 169 30
  combo 14, 10 17 124 50, edit drop
  button "Add", 22, 137 17 15 11
  button "Done", 24, 136 168 37 12, ok cancel
  combo 20, 214 64 60 50, edit drop
  combo 21, 278 64 60 50, drop
  button "Set Input", 25, 341 64 33 11
  box "Input Command Colors", 26, 210 54 169 28
  button "Del", 11, 155 17 15 11
  check "Enabled", 15, 101 169 30 10
  check "Bold", 16, 268 98 25 10
  check "Italic", 17, 294 98 25 10
  check "Underline", 18, 320 98 35 10
  text "Work In Progress, Please dont remove the following controls.", 19, 214 29 164 13, center
}

on *:dialog:dr_dev_acro_man:*:*: {
  var %acw = @Acro_TMP, %acht = $acrtbl, %set = acro_settings
  var %sf = settings.ini, %sdt = acro_cknet_dis, %sit = acro_input_cmd
  var %tmpc2 = %dev_acro_f, %tmpc4 = %dev_acro_s
  if ($devent == init) {

    ;-----------
    window -Bh +fdl %acw
    mdxsetmark $dname | mdxsetcont $dname 8 window > $dlgdll
    did -a $dname 8 grab $window(%acw).hwnd %acw

    ;-----------

    var %c = White:Black:Blue:Green:Red:Brown:Purple:Orange:Yellow:Neon Green:Cyan:Light Cyan:Light Blue:Pink:Grey:Light Grey
    didtok $dname 1,21 58 %c | did -c $dname 1,21 1

    var %x = 1 | while (%x <= $hget(%acht,0).item) { did -a $dname 7 $gettok($hget(%acht,%x).item,2-,46) | inc %x }
    did -c $dname 7 1 | clear %acw | aline -p %acw $acro.repc($hget(%acht,$dcrc($did($dname,7).text)))

    did -ra $dname 6 $hget(%acht,$dcrc($did($dname,7).text))

    var %sel = $remove(%tmpc2,$chr(3)), %sel = $regsubex(%sel,/^0/g,)
    did -c $dname 1 $calc(%sel + 1) | did -c $dname 2

    var %x = 1 | while (%x <= $ini(%sf,%sit,0)) { did -a $dname 20 $ini(%sf,%sit,%x) | inc %x }
    did -c $dname 20 1 | var %ci = $readini(%sf,%sit,$did($dname,20).text)

    var %sel = $remove(%ci,$chr(3)), %sel = $regsubex(%sel,/^0/g,)
    did -c $dname 21 $calc(%sel + 1)

    did -r $dname 14 | didtok $dname 14 44 $readini(%sf,%sdt,networks)
    did -c $dname 14 1

    if ($readini(%sf,%sdt,active)) { did -c $dname 15 }
  }
  elseif ($devent == edit) {
    if ($did == 6) {
      clear %acw | aline -p %acw $acro.repc($did($dname,6).text)
    }
  }
  elseif ($devent == sclick) {
    ;echo -a $devent - $did
    var %rt = $did($dname,7).text, %rt = $hget(%acht,$dcrc(%rt))
    if ($istok(1 2 4,$did,32)) {
      if ($did != 1) {
        var %sel = $remove(%tmpc [ $+ [ $did ] ],$chr(3)), %sel = $regsubex(%sel,/^0/g,)
        did -c $dname 1 $calc(%sel + 1)
      }
      var %zpn = $zpdr($calc($did($dname,1).sel - 1))
      clear %acw | aline -p %acw $+($chr(3),%zpn,$did($dname,1).seltext)
    }
    elseif ($istok(5 7,$did,32)) {
      var %zpn = $zpdr($calc($did($dname,1).sel - 1))
      if ($did == 5) {
        if ($did($dname,2).state) { set %dev_acro_f $+($chr(3),%zpn) }
        elseif ($did($dname,4).state) { set %dev_acro_s $+($chr(3),%zpn) }
      }
      clear %acw | aline -p %acw $acro.repc(%rt) | did -ra $dname 6 %rt
    }
    elseif ($istok(10 12,$did,32)) {
      var %t = $did($dname,6).text, %l = $did($dname,7).text, %h = $iif($did == 12,hdel,hadd)
      %h -m %acht $dcrc(%l) %t | hsave %acht $acrdf | did -r $dname 7
      var %x = 1 | while (%x <= $hget(%acht,0).item) { did -a $dname 7 $gettok($hget(%acht,%x).item,2-,46) | inc %x }
      did -c $dname 7 $didwm($dname,7,%l)
    }
    elseif ($istok(11 22,$did,32)) {
      var %ri = $readini(%sf,%sdt,networks), %nt = $did($dname,14).text
      var %ri = $iif($did == 22,$addtok(%ri,%nt,44),$remtok(%ri,%nt,1,44))
      writeini -n %sf %sdt networks %ri
      did -r $dname 14 | didtok $dname 14 44 %ri

    }
    elseif ($did == 15) { writeini -n %sf %sdt active $did($dname,15).state }
    elseif ($istok(16 17 18,$did,32)) {
      var %x = 1, %y = 16 17 18, %z = \b \i \u, %cc
      while (%x <= 3) { if ($did($dname,$gettok(%y,%x,32)).state) var %cc = $+(%cc,$gettok(%z,%x,32)) | inc %x }
      if ($did($dname,2).state) { writeini -n %sf %set c1 %cc }
      elseif ($did($dname,4).state) { writeini -n %sf %set c2 %cc }
    }
    elseif ($did == 20) {
      var %ci = $readini(%sf,%sit,$did($dname,20).text)
      var %sel = $remove(%ci,$chr(3)), %sel = $regsubex(%sel,/^0/g,$null)
      did -c $dname 21 $calc(%sel + 1)
    }
    elseif ($did == 25) {
      var %zpn = $zpdr($calc($did($dname,21).sel - 1))
      writeini -n %sf %sit $did($dname,20).text $+($chr(3),%zpn)
    }
  }
}
;-----------
;EOF
;-----------
Posted By: DragonRyder Re: Acro Script - 07/04/20 11:09 PM
Any help out there?
Posted By: kap Re: Acro Script - 08/04/20 03:27 AM
I made a weather script for Peace and Protection and I created the following dialog:

[Linked Image from i.imgur.com]

You may want to copy the top half of the dialog and work from there. Source can be found: https://github.com/peace-and-protec...83c7f6f17bbb73a2d27e4303/WEATHER.PPA#L55
© mIRC Discussion Forums