Updated again, now all the days with information written for will have a little asterisk(*) next to the number. I also discovered a spelling mistake in the names of the files, it wrote them as CalenderYEAR instead of CalendarYEAR. I corrected this but all the Calendar files will have to be corrected (in the mIRC directory).
I have changed $leapyear and added a \'Done\' Button. I have also added a function where the current day\'s dialog will appear when mIRC is loaded (The Initialization script warning should be turned off for convenience). The auto-alert option can be turned off from the channel menu. I hope to add an alert system that will tell you your events for the next few days at some point. As for shortening the code, I personally prefer the tabs, but I agree that the code is too long, I have an idea involving creating the tabs but not specifying a tab for the controls, but instead hiding/showing the necessary buttons when a tab is clicked. This way I will only need the 31 buttons but will keep the tabs, I will try to implement this at some point.
This is a calendar dialog script. You open the channel popup menu, click 'CalliCalendar' enter a year, which will open the Calendar, months are arranged into tabs, each with a respective amount of buttons, indicating the dates within that month. Click a date to open a second dialog, where you can enter information etc for that day, and click submit. This info is written to an .ini file. A file is created..
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.