a fun script i made =p took me awhile to get it figured out xD ill keep updating it when i get the chance
right click in the channel and click chantalk =]
Screen Shot:
menu * {
.ChanTalk:/dialog -md ChanTalk ChanTalk | set %chan $chan | listnicklist | msg $chan I'm using Staccia's ChanTalk!
}
dialog ChanTalk {
title "ChanTalk"
size -1 -1 310 310
option dbu
list 41, 5 5 250 250, vsbar hsbar
list 44, 255 5 300 250, vsbar hsbar
edit "", 42, 5 255 300 30, autohs
button "Submit", 43, 5 285 300 12
button "New Chan", 45, 5 297 35 12
button "Clear Chat", 47, 265 297 40 12
edit "#", 46, 40 297 40 12, autohs
}
on *:JOIN:%chan: {
did -az ChanTalk 41 $time(hh:nn:ss) - $+ $nick $+ - has joined %chan $+ .
/listnicks
}
on *:part:%chan: {
did -az ChanTalk 41 - $time(hh:nn:ss) - $+ $nick $+ - has left %chan $+ .
timer -m 1 1 /listnicklist
}
on *:TEXT:*:%chan: {
if ($nick ishop %chan) {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) <% $+ $nick $+ > $1-
}
}
if ($nick isvoice %chan) {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) <+ $+ $nick $+ > $1- }
/timer 1 1 did -az ChanTalk 41 $time(hh:nn:ss) <+ $+ $nick $+ > $1-
}
if ($nick isop %chan) {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) <@ $+ $nick $+ > $1- }
}
if ($nick isreg %chan) {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) < $+ $nick $+ > $1- }
}
}
on *:input:%chan: {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) < $+ $me $+ > $1- }
}
on *:NOTICE:*:?: {
if ($dialog(ChanTalk)) { did -az ChanTalk 41 $time(hh:nn:ss) < $+ $nick $+ > $1- }
}
on *:DIALOG:ChanTalk:sclick:43: {
if ($did($dname,42)) { msg %chan $did($dname,42) | did -a ChanTalk 41 $time(hh:nn:ss) < $+ $me $+ > $did($dname,42) | did -r ChanTalk 42 }
}
on *:DIALOG:ChanTalk:sclick:45: {
if ($did($dname,46)) { did -r ChanTalk 41 | did -r ChanTalk 44 | set %chan $did($dname,46) | did -a ChanTalk 41 ----NOW TALKING IN $did($dname,46) $+ ---- | msg %chan I'm using Staccia's ChanTalk! }
}
on *:DIALOG:ChanTalk:sclick:47: {
if ($did($dname,47)) { did -r ChanTalk 41 }
}
on *:DIALOG:ChanTalk:sclick:45: {
if ($did($dname,46)) { did -r ChanTalk 41 | did -r ChanTalk 44 | set %chan $did($dname,46) | did -a ChanTalk 41 ----NOW TALKING IN $did($dname,46) $+ ---- | listnicklist | did -r chantalk 46 }
}
alias listnicklist {
set %i 1
/listnicks
:next
if (%listnick == off) { goto done }
/listnicks
/timer 1 10 listnicklist
:done
}
alias listnicks {
set %i 1
did -r ChanTalk 44
:next
set %nick $nick(#,%i)
if %nick == $null goto done
if %nick isop # did -az ChanTalk 44 @ $+ %nick
if %nick ishelp # did -az ChanTalk 44 % $+ %nick
if %nick isvoice # did -az ChanTalk 44 + $+ %nick
if %nick isreg # did -az ChanTalk 44 %nick
inc %i
goto next
:done
}
on *:OP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEOP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:HELP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEHELP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:VOICE:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEVOICE:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
Some of the $dialog and I think some of the on dialog events have the dialog name as \'etoken\' which needs to be changed to \'ChanTalk\'.
Also, I changed the on part event to
on *:part:%chan: {
did -az ChanTalk 41 $time(hh:nn:ss) - $+ $nick $+ - has left %chan $+ .
timer -m 1 1 /listnicklist
}
And I wrote the status change update events:
on *:OP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEOP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:HELP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEHELP:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:VOICE:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
on *:DEVOICE:%chan: {
if (( $dialog(chantalk) )) {
listnicklist
}
}
I deleted the original \'listnicklist\' alias, and changed the \'listnicks\' alias\' name to \'listnicklist\' and both occurrences of listnicks in the script to \'listnicklist\' , and changed the new \'listnicklist\' alias to
alias listnicklist {
var %i = 1
did -r ChanTalk 44
:next
set %nick $nick(%chan,%i)
if %nick == $null goto done
if %nick isop %chan did -az ChanTalk 44 @ $+ %nick
if %nick ishelp %chan did -az ChanTalk 44 % $+ %nick
if %nick isvoice %chan did -az ChanTalk 44 + $+ %nick
if %nick isreg %chan did -az ChanTalk 44 %nick
inc %i
goto next
:done
}
I then changed the on dialog sclick 45 event to:
on *:DIALOG:ChanTalk:sclick:45: {
if ($did($dname,46)) { did -r ChanTalk 41 | did -r ChanTalk 44 | set %chan $did($dname,46) | did -a ChanTalk 41 ----NOW TALKING IN $did($dname,46) $+ ---- | listnicklist | did -r chantalk 46 }
}
That gets rid of the timers and updates the nick list instantly. There will need to be an event to update the status when someone changes a nick\'s status in a channel.
I may be mistaken, but is it using a 10 second timer to update the nicklist? If so, I would make it so that it updates the nick list whenever someone joins a channel the person is in.(Problems with timers: You constantly get the timers message, the timers don\'t halt when you close the dialog, so the \"did -r ChanTalk 44\" command runs, but the dialog is closed so it returns an error message. Also I wouldn\'t have the \"I\'m using Staccia\'s ChanTalk!\" message in the channel every time.