Jump to content

Nicklist Help


Dippy

Recommended Posts

Tried to do my own nicklist This what I have so far

 

on *:Start:/dialog -m nicklist nicklist

dialog Nicklist {
  title "nicklist"
  size -1 -1 112 256
  option dbu
  list 1, 1 0 106 255, size vsbar
}


on *:Dialog:nicklist:init:*: {
  dll dll\rebar.dll Dock $dialog(nicklist).hwnd > right
  dll dll\mdx.dll Set MircVersion $version
  dll dll\mdx.dll MarkDialog $dname
  dll dll\mdx.dll SetFront $dname
  dll dll\mdx.dll SetFront $dname 1 14 50 verdana
  dll dll\mdx.dll SetColor $dname
  dll dll\mdx.dll SetColor $dname 1 text $rgb (0,0,139)
  dll dll\mdx.dll SetControlMDX $dname 1 ListView noheader smallicon hottrack single > dll\views.mdx
  did -i $dname 1 1 iconsize normal small
  did -i $dname 1 1 seticon normal 0, $+ icon\owner.ico
  did -i $dname 1 1 seticon normal 0, $+ icon\host.ico
  did -i $dname 1 1 seticon normal 0, $+ icon\spec.ico
  did -i $dname 1 1 seticon normal 0, $+ icon\voice.ico
  did -i $dname 1 1 settxt color $rgb(0,0,139)

  nickinlist

  alias nickinlist{
  did -r nicklist 1

  var %n 1
  while (%n <= $nick($active,0)) {

    did -a nicklist 1 0 + $nicklisticon($nick($active,%n)) $nick($active,%n)

    inc %n
  }
}

alias nicklisticon {
  if(%1 isowner $active) return 1
  elseif ($1 isop $active) return 2
  elseif (*+*m* iswm $chan($active).mode) && ($1 !isvoice $active) return 4
  elseif (*+*m* !iswm $chan($active).mode) && ($1 isvoice $active) return 3
  elseif (*+*m* iswm $chan($active).mode) && ($1 isvoice $active) return 3
  elseif (*+*m* !iswm $chan($active).mode) && ($1 !isvoice $active) return 3
}

 

But I'm unable to get the list going any idea ?

Link to comment
Share on other sites

  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

Well Dippy you have a few things wrong with the coding..

 

First you have Set MIRCVERSION which i don't think is valid

Next SetFront should be Set Font

Next you didn't close the bracked on init

 

This should work for you.

 

on *:Start:/dialog -m nicklist nicklist
  
  dialog Nicklist {
    title "nicklist"
    size -1 -1 112 256
    option dbu
    list 1, 1 0 106 255, size vsbar
  }
  
  
  on *:Dialog:nicklist:init:*: {
    dll dll\rebar.dll Dock $dialog(nicklist).hwnd > right
    dll dll\mdx.dll SetMircVersion $version
    dll dll\mdx.dll MarkDialog $dname
    dll dll\mdx.dll SetFont $dname 1 14 50 verdana
    dll dll\mdx.dll SetColor $dname 1 text $rgb (0,0,139)
    dll dll\mdx.dll SetControlMDX $dname 1 ListView noheader smallicon hottrack single > dll\views.mdx
    did -i $dname 1 1 iconsize normal small
    did -i $dname 1 1 seticon normal 0,  icon\owner.ico
    did -i $dname 1 1 seticon normal 0,  icon\host.ico
    did -i $dname 1 1 seticon normal 0,  icon\spec.ico
    did -i $dname 1 1 seticon normal 0,  icon\voice.ico
    did -i $dname 1 1 settxt color $rgb(0,0,139)
    nickinlist
  }
  alias nickinlist {
    did -r nicklist 1
  
    var %n 1
    while (%n <= $nick($active,0)) {
      did -a nicklist 1 0 + $nicklisticon($nick($active,%n)) $nick($active,%n)
      inc %n
    }
  }
  
  alias nicklisticon {
    if ($1 isowner $active) return 1
    elseif ($1 isop $active) return 2
    elseif (*+*m* iswm $chan($active).mode) && ($1 !isvoice $active) return 4
    elseif (*+*m* !iswm $chan($active).mode) && ($1 isvoice $active) return 3
    elseif (*+*m* iswm $chan($active).mode) && ($1 isvoice $active) return 3
    elseif (*+*m* !iswm $chan($active).mode) && ($1 !isvoice $active) return 3
  }

 

It's prolly not a good idea to have the alias to get the nicks in the init if you have it docked on start.

Prolly better to do it on join

Link to comment
Share on other sites

ok Thanks :P:) for that Error :P:)

 

But still unable to grab list

 

It Popups and docks but Blank

Edited by Dippy
Link to comment
Share on other sites

i had to make a bit of an edit

 

your if had the ( right up against it like if( you can't do that with if.. only with $iif.. it needed to be if (

 

join a room and then type in your alias it should populate the nicklist

Link to comment
Share on other sites

Something with a onjoin would probably work better

 

on *:Start:/dialog -m nicklist nicklist
  
  dialog Nicklist {
    title "nicklist"
    size -1 -1 112 256
    option dbu
    list 1, 1 0 106 255, size vsbar
  }
  
  
  on *:Dialog:nicklist:init:*: {
    dll dll\rebar.dll Dock $dialog(nicklist).hwnd > right
    dll dll\mdx.dll SetMircVersion $version
    dll dll\mdx.dll MarkDialog $dname
    dll dll\mdx.dll SetFont $dname 1 14 50 verdana
    dll dll\mdx.dll SetColor $dname 1 text $rgb (0,0,139)
    dll dll\mdx.dll SetControlMDX $dname 1 ListView noheader smallicon hottrack single > dll\views.mdx
    did -i $dname 1 1 iconsize normal small
    did -i $dname 1 1 seticon normal 0,  icon\owner.ico
    did -i $dname 1 1 seticon normal 0,  icon\host.ico
    did -i $dname 1 1 seticon normal 0,  icon\spec.ico
    did -i $dname 1 1 seticon normal 0,  icon\voice.ico
    did -i $dname 1 1 settxt color $rgb(0,0,139)
  }
  
  alias nickinlist {
    did -r nicklist 1
    var %n 1
    while (%n <= $nick($active,0)) {
      did -a nicklist 1 0 + $nicklisticon($nick($active,%n)) $nick($active,%n)
      inc %n
    }
  }
  
  alias nicklisticon {
    if ($1 isowner $active) return 1
    elseif ($1 isop $active) return 2
    elseif (*+*m* iswm $chan($active).mode) && ($1 !isvoice $active) return 4
    elseif (*+*m* !iswm $chan($active).mode) && ($1 isvoice $active) return 3
    elseif (*+*m* iswm $chan($active).mode) && ($1 isvoice $active) return 3
    elseif (*+*m* !iswm $chan($active).mode) && ($1 !isvoice $active) return 3
  }
  on *:join:*: {
    if ($nick == $me) { .timernl -m 1 9 nickinlist }
  }

 

This works as I have tested it. If it doesn't work for you then check your dll folder for rebar.dll, mdx.dll and views.mdx

If they are both there and it still doesn't work then most likely your problem is with your path to the dlls and views

Link to comment
Share on other sites

This should now work for you. I added a code that will find your icons no matter where (within your mirc directory) you place your icons. Also works the same way for your dll files.

 

on *:Start:/dialog -m nicklist nicklist

dialog Nicklist {
  title "nicklist"
  size -1 -1 112 256
  option dbu
  list 1, 1 0 106 255, size vsbar
}


on *:Dialog:nicklist:init:*: {
  dll $ff(rebar.dll) Dock $dialog(nicklist).hwnd > right
  dll $ff(mdx.dll) SetMircVersion $version
  dll $ff(mdx.dll) MarkDialog $dname
  dll $ff(mdx.dll) SetFont $dname
  dll $ff(mdx.dll) SetFont $dname 1 14 50 verdana
  dll $ff(mdx.dll) SetColor $dname
  dll $ff(mdx.dll) SetColor $dname 1 text $rgb (0,0,139)
  dll $ff(mdx.dll) SetControlMDX $dname 1 ListView noheader smallicon hottrack single > $ff(views.mdx)
  did -i $dname 1 1 iconsize normal small
  did -i $dname 1 1 seticon normal 0, $+ $ff(owner.ico)
  did -i $dname 1 1 seticon normal 0, $+ $ff(host.ico)
  did -i $dname 1 1 seticon normal 0, $+ $ff(spec.ico)
  did -i $dname 1 1 seticon normal 0, $+ $ff(voice.ico)
  did -i $dname 1 1 settxt color $rgb(0,0,139)

  nickinlist
}

alias nickinlist{
  did -r nicklist 1

  var %n 1
  while (%n <= $nick($active,0)) {

    did -a nicklist 1 0 + $nicklisticon($nick($active,%n)) $nick($active,%n)

    inc %n
  }
}

alias ff {
  if (!%ff. [ $+ [ $1- ] ]) || (!$exists(%ff. [ $+ [ $1- ] ])) {
    if (!$longfn($findfile($nofile($mircexe),$1-,1))) set %ff. [ $+ [ $1- ] ] $shortfn($nofile($mircexe) $+ $1-)
    else set %ff. [ $+ [ $1- ] ] $shortfn($findfile($nofile($mircexe),$1-,1))
  }
  if (!$exists(%ff. [ $+ [ $1- ] ])) echo $color(info) -a $nopath(%ff. [ $+ [ $1- ] ]) cannot be found anywhere within this directory. Please download, and install.
  return %ff. [ $+ [ $1- ] ]
}

alias nicklisticon {
  if($1 isowner $active) return 1
  elseif ($1 isop $active) return 2
  elseif (*+*m* iswm $chan($active).mode) && ($1 !isvoice $active) return 4
  elseif (*+*m* !iswm $chan($active).mode) && ($1 isvoice $active) return 3
  elseif (*+*m* iswm $chan($active).mode) && ($1 isvoice $active) return 3
  elseif (*+*m* !iswm $chan($active).mode) && ($1 !isvoice $active) return 3
}

on *:join:*: {
  if ($nick == $me) { .timernl -m 1 9 nickinlist }
}

Edited by Warrior124
Link to comment
Share on other sites

Thanks that worked just need to play with icon a bit

 

My Other Question is How Would I make it that it picks up popup.ini?

 

I throught maybe something like this

 

menu * { 
  mouse:if ($hget(history. $+ $active,0)) click 2 $ifmatch 
  sclick: { var %i = 1 | while ($hget(button. $+ $active,%i)) { tokenize 59 $ifmatch | if ($inrect($mouse.x,$mouse.y,$1,$2,$3,$4)) { hadd -m history. $+ $active 0 %i | click 1 %i | break } | inc %i } } 
  uclick:if ($hget(history. $+ $active,0)) click 3 $ifmatch 
}

 

But don't seems to work lol

Edited by Dippy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...