mIRC Avatars MOD — File Browser
mIRCAvatarsMODv0.3 / mIRCAvatarsMODv0.3 / avatars / avatar.mrc
avatar.mrc — 16.97 KB — Download this file
; start avatars mod
alias -l avatarsdir return $+(",$scriptdir,$1-,")
on 1:LOAD:{
if ($?!="Do you want to enable avatars by nickmasks (nick!ident@host) or just by nicks (nick)? $+ $crlf $+ This will cause a '/who #channel' to be executed every time you join a channel! $+ $crlf $+ Note that you will not be able to change this setting later!" == $true) {
writeini $avatarsdir(avatar.ini) Main use_nick_masks TRUE
}
else {
writeini $avatarsdir(avatar.ini) Main use_nick_masks FALSE
}
dll $avatarsdir(avatar.dll) mSetupColors $base($color(0), 10, 16, 6) $+ $base($color(1), 10, 16, 6) $+ $base($color(2), 10, 16, 6) $+ $base($color(3), 10, 16, 6) $+ $base($color(4), 10, 16, 6) $+ $base($color(5), 10, 16, 6) $+ $base($color(6), 10, 16, 6) $+ $base($color(7), 10, 16, 6) $+ $base($color(8), 10, 16, 6) $+ $base($color(9), 10, 16, 6) $+ $base($color(10), 10, 16, 6) $+ $base($color(11), 10, 16, 6) $+ $base($color(12), 10, 16, 6) $+ $base($color(13), 10, 16, 6) $+ $base($color(14), 10, 16, 6) $+ $base($color(15), 10, 16, 6)
echo -a [avatar] Please restart mIRC to finisih the installation process.
}
on 1:UNLOAD:{
echo -a [avatar] You should restart mirc to complete the uninstallation process.
}
; end of /WHO
raw 315:*:{
; if first char is #
if ($asc($mid($2, 1, 1)) == 35) {
; refresh the nicklist
dll $avatarsdir(avatar.dll) mRefreshWnd $chan($2).hwnd
}
}
on 1:JOIN:#:{
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == TRUE && $nick == $me) {
; getting addresses
who $chan
}
}
on 1:START:{
dll $avatarsdir(avatar.dll) mSetHook
var %query_bg_style = $readini($avatarsdir(avatar.ini), n, Main, query_bg_style)
/set %avatars_query_bg %query_bg_style
}
dialog avatarmain_table {
title "Avatars module (by MrBrdo)"
size -1 -1 449 295
option pixels
tab "Alignment", 3, 4 4 436 252
tab "Colors", 5
tab "Frame", 11
box "Avatar alignment", 6, 13 33 205 72, tab 3
box "Avatar in query alignment", 51, 13 107 418 51, tab 3
button "OK", 46, 373 261 67 25, ok
box "Misc", 44, 13 162 419 80, tab 3
check "Nicks with no avatar set use this avatar:", 47, 25 185 222 17, tab 3
edit "", 48, 23 204 313 20, tab 3
button "Browse", 49, 339 203 65 21, tab 3
radio "Center", 34, 74 55 55 20, tab 3 group
radio "Left", 32, 25 55 42 20, tab 3
radio "Right", 33, 135 55 49 20, tab 3
radio "Left", 10, 238 56 42 20, tab 3 group
radio "Center", 39, 287 56 55 20, tab 3
radio "Right", 38, 348 56 49 20, tab 3
box "Nick alignment", 7, 226 33 204 57, tab 3
radio "Top left", 53, 94 130 60 17, tab 3 group
radio "Top right", 54, 157 130 66 17, tab 3
radio "Disabled", 52, 27 130 65 17, tab 3
box "Colors", 12, 14 33 202 118, tab 5
text "Text:", 14, 27 79 63 17, tab 5
edit "FFFFFF", 18, 107 59 72 20, tab 5
edit "A99B8D", 19, 107 79 72 20, tab 5
edit "000000", 22, 107 99 72 20, tab 5
text "Text (@):", 23, 27 99 63 17, tab 5
edit "59AA00", 24, 107 119 72 20, tab 5
text "Text (+):", 25, 27 119 63 17, tab 5
button "...", 55, 179 59 26 20, tab 5
button "...", 56, 179 78 26 20, tab 5
button "...", 57, 179 99 26 20, tab 5
button "...", 58, 179 119 26 20, tab 5
text "Background:", 13, 27 59 63 17, tab 5
button "Re-read colors from mIRC", 2, 24 204 140 23, tab 5
box "Colors (focused)", 1, 225 33 203 119, tab 5
text "Background:", 16, 237 59 63 17, tab 5
text "Text:", 17, 237 79 63 17, tab 5
edit "FFFFFF", 20, 317 79 72 20, tab 5
edit "F89452", 21, 317 59 72 20, tab 5
text "Text (+):", 26, 237 119 63 17, tab 5
edit "FFFFFF", 27, 317 119 72 20, tab 5
edit "FFFFFF", 28, 317 99 72 20, tab 5
text "Text (@):", 29, 237 99 63 17, tab 5
button "...", 59, 389 59 26 20, tab 5
button "...", 60, 389 79 26 20, tab 5
button "...", 61, 389 99 26 20, tab 5
button "...", 62, 389 119 26 20, tab 5
box "Advanced", 9, 14 156 414 85, tab 5
check "Nicks with no avatar uses mIRC colors", 8, 26 178 212 20, tab 5
check "Avatar on left instead of on top", 4, 24 81 184 17, tab 3
check "Avatars have an image frame", 15, 21 43 174 17, tab 11
text "Color:", 30, 21 67 63 17, tab 11
edit "000000", 31, 101 67 72 20, tab 11
button "...", 35, 173 67 26 20, tab 11
edit "000000", 36, 101 87 72 20, tab 11
button "...", 37, 173 86 26 20, tab 11
text "Focus:", 40, 21 87 63 17, tab 11
button "Use nick colors", 41, 21 116 179 25, tab 11
}
on 1:dialog:avatarmain:sclick:2:{
dll $avatarsdir(avatar.dll) mSetupColors $base($color(0), 10, 16, 6) $+ $base($color(1), 10, 16, 6) $+ $base($color(2), 10, 16, 6) $+ $base($color(3), 10, 16, 6) $+ $base($color(4), 10, 16, 6) $+ $base($color(5), 10, 16, 6) $+ $base($color(6), 10, 16, 6) $+ $base($color(7), 10, 16, 6) $+ $base($color(8), 10, 16, 6) $+ $base($color(9), 10, 16, 6) $+ $base($color(10), 10, 16, 6) $+ $base($color(11), 10, 16, 6) $+ $base($color(12), 10, 16, 6) $+ $base($color(13), 10, 16, 6) $+ $base($color(14), 10, 16, 6) $+ $base($color(15), 10, 16, 6)
; to refresh the colors in the nicklist
loadavatarconfig
dialog -x avatarmain
.timer 5 1 //updateuserchannels $me
}
on 1:dialog:avatarmain:sclick:41:{
did -o avatarmain 31 1 -1
did -o avatarmain 36 1 -1
}
on 1:dialog:avatarmain:sclick:35:{
did -o avatarmain 31 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(31))
}
on 1:dialog:avatarmain:sclick:37:{
did -o avatarmain 36 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(36))
}
on 1:dialog:avatarmain:sclick:55:{
did -o avatarmain 18 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(18))
}
on 1:dialog:avatarmain:sclick:56:{
did -o avatarmain 19 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(19))
}
on 1:dialog:avatarmain:sclick:57:{
did -o avatarmain 22 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(22))
}
on 1:dialog:avatarmain:sclick:58:{
did -o avatarmain 24 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(24))
}
on 1:dialog:avatarmain:sclick:59:{
did -o avatarmain 21 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(21))
}
on 1:dialog:avatarmain:sclick:60:{
did -o avatarmain 20 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(20))
}
on 1:dialog:avatarmain:sclick:61:{
did -o avatarmain 28 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(28))
}
on 1:dialog:avatarmain:sclick:62:{
did -o avatarmain 27 1 $dll($avatarsdir(avatar.dll), mSelectColor, $did(27))
}
alias -l listboxchecked {
if ($did($1).state == 1) {
return TRUE
}
else {
return FALSE
}
}
alias -l listboxcheckbybool {
if ($1 == TRUE) {
did -c $2 $3
}
else {
did -u $2 $3
}
}
alias -l bool_inv {
if ($1 == TRUE) {
return FALSE
}
else {
return TRUE
}
}
alias -l getaligntexthelpproc1 {
if ($did($1).state == 1) {
return $2
}
else {
return
}
}
; $getaligntext(left, right, centerx, centery, top, bottom)
alias -l getaligntext {
var %result
%result = %result $+ $getaligntexthelpproc1($1, Left)
%result = %result $+ $getaligntexthelpproc1($2, Right)
%result = %result $+ $getaligntexthelpproc1($3, CenterX)
%result = %result $+ CenterY
if ($len(%result) < 1) { %result = 0 }
return %result
}
alias -l setalignfromtexthelpproc1 {
if ($pos($4, $1, 0) > 0) {
did -c $2 $3
}
else {
did -u $2 $3
}
}
; setalignfromtext left right centerx centery top bottom
alias -l setalignfromtext {
setalignfromtexthelpproc1 Left $1 $2 $8-
setalignfromtexthelpproc1 Right $1 $3 $8-
setalignfromtexthelpproc1 CenterX $1 $4 $8-
}
alias -l getavatarwm {
var %avatarsfilename = $avatarsdir(avatars.lst)
var %numlines = $lines(%avatarsfilename)
var %i = 1
var %s
var %bestmatch
var %bestmatchtmp
while (%i <= %numlines) {
%s = $read(%avatarsfilename, %i)
if ($pos(%s,=,0) > 0) {
%nick = $gettok(%s, 1, 61)
if (%bestmatch != $null) {
if ((%bestmatch iswm %nick) && (%nick iswm $1)) {
%bestmatchtmp = %s
%bestmatch = %nick
}
}
elseif (%nick iswm $1) {
%bestmatchtmp = %s
%bestmatch = %nick
}
}
inc %i
}
return %bestmatchtmp
}
alias -l writenewavatar {
var %avatarsfilename = $avatarsdir(avatars.lst)
var %numlines = $lines(%avatarsfilename)
var %i = 1
var %avatarlinenum = -1
var %s
while (%i <= %numlines) {
%s = $read(%avatarsfilename, %i)
if ($pos(%s,=,0) > 0) {
%nick = $gettok(%s, 1, 61)
if ($1 iswm %nick) {
%avatarlinenum = %i
}
}
inc %i
}
if (%avatarlinenum >= 0) {
write -l $+ %avatarlinenum %avatarsfilename $1 $+ = $+ $2-
}
else {
write -a %avatarsfilename $1 $+ = $+ $2-
}
}
alias -l removeavatar_file {
%avatarfn = $gettok($getavatarwm($1),2,61)
if ($len(%avatarfn) > 0) {
if ($nopath(%avatarfn) == %avatarfn) {
%avatarfn = $avatarsdir(avatars\ $+ %avatarfn)
}
if ($exists(%avatarfn) == $true) .remove %avatarfn
}
}
alias -l removeavatar {
var %avatarsfilename = $avatarsdir(avatars.lst)
var %numlines = $lines(%avatarsfilename)
var %i = 1
var %avatarlinenum = -1
var %s
while (%i <= %numlines) {
%s = $read(%avatarsfilename, %i)
if ($pos(%s,=,0) > 0) {
%nick = $gettok(%s, 1, 61)
if (%nick iswm $1) {
%avatarlinenum = %i
}
}
inc %i
}
$removeavatar_file($1)
if (%avatarlinenum >= 0) {
write -dl $+ %avatarlinenum %avatarsfilename
return 1
}
return 0
}
alias -l loadavatarconfig {
var %inifilename = $avatarsdir(avatar.ini)
did -o avatarmain 18 1 $readini(%inifilename, n, Main, bgcolor)
did -o avatarmain 19 1 $readini(%inifilename, n, Main, fgcolor)
did -o avatarmain 20 1 $readini(%inifilename, n, Main, fgcolor_focus)
did -o avatarmain 21 1 $readini(%inifilename, n, Main, bgcolor_focus)
did -o avatarmain 22 1 $readini(%inifilename, n, Main, @_fgcolor)
did -o avatarmain 24 1 $readini(%inifilename, n, Main, +_fgcolor)
did -o avatarmain 28 1 $readini(%inifilename, n, Main, @_fgcolor_focus)
did -o avatarmain 27 1 $readini(%inifilename, n, Main, +_fgcolor_focus)
did -o avatarmain 31 1 $readini(%inifilename, n, Main, frame_color)
did -o avatarmain 36 1 $readini(%inifilename, n, Main, frame_color_focus)
listboxcheckbybool $readini(%inifilename, n, Main, nobody_picture) avatarmain 47
listboxcheckbybool $bool_inv($readini(%inifilename, n, Main, item_with_no_avatar_default_draw)) avatarmain 8
listboxcheckbybool $readini(%inifilename, n, Main, draw_avatar_frame) avatarmain 15
listboxcheckbybool $readini(%inifilename, n, Main, avatar_on_left) avatarmain 4
$setalignfromtext(avatarmain, 32, 33, 34, 35, 36, 37, $readini(%inifilename, n, Main, image_align))
$setalignfromtext(avatarmain, 10, 38, 39, 40, 41, 42, $readini(%inifilename, n, Main, text_align))
did -o avatarmain 48 1 $gettok($getavatarwm("nobody"),2,61)
var %query_bg_style = $readini(%inifilename, n, Main, query_bg_style)
if (%query_bg_style == 0) { did -c avatarmain 52 }
elseif (%query_bg_style == 1) { did -c avatarmain 53 }
elseif (%query_bg_style == 2) { did -c avatarmain 54 }
}
on 1:dialog:avatarmain:init:0:{
loadavatarconfig
}
on 1:dialog:avatarmain:sclick:46:{
var %inifilename = $avatarsdir(avatar.ini)
writeini %inifilename Main bgcolor $did(18)
writeini %inifilename Main fgcolor $did(19)
writeini %inifilename Main fgcolor_focus $did(20)
writeini %inifilename Main bgcolor_focus $did(21)
writeini %inifilename Main @_fgcolor $did(22)
writeini %inifilename Main +_fgcolor $did(24)
writeini %inifilename Main @_fgcolor_focus $did(28)
writeini %inifilename Main +_fgcolor_focus $did(27)
writeini %inifilename Main frame_color $did(31)
writeini %inifilename Main frame_color_focus $did(36)
writeini %inifilename Main nobody_picture $listboxchecked(47)
writeini %inifilename Main item_with_no_avatar_default_draw $bool_inv($listboxchecked(8))
writeini %inifilename Main draw_avatar_frame $listboxchecked(15)
writeini %inifilename Main image_align $getaligntext(32,33,34,35,36,37)
writeini %inifilename Main text_align $getaligntext(10,38,39,40,41,42)
writenewavatar "nobody" $did(48)
var %query_bg_style
if ($did(52).state == 1) { %query_bg_style = 0 }
elseif ($did(53).state == 1) { %query_bg_style = 1 }
elseif ($did(54).state == 1) { %query_bg_style = 2 }
writeini %inifilename Main query_bg_style %query_bg_style
set %avatars_query_bg %query_bg_style
if (($readini(%inifilename, n, Main, avatar_on_left) == TRUE) && ($listboxchecked(4) == FALSE)) {
writeini %inifilename Main item_height 75
writeini %inifilename Main item_width 75
}
if (($readini(%inifilename, n, Main, avatar_on_left) == FALSE) && ($listboxchecked(4) == TRUE)) {
writeini %inifilename Main item_height 40
writeini %inifilename Main item_width 40
}
writeini %inifilename Main avatar_on_left $listboxchecked(4)
.timer 5 1 //updateuserchannels $me
}
on 1:dialog:avatarmain:sclick:49:{
addchangeavatar "nobody" $false
did -o avatarmain 48 1 $gettok($getavatarwm("nobody"),2,61)
}
alias avatarconfig {
%result = $dialog(avatarmain, avatarmain_table)
dll $avatarsdir(avatar.dll) mRefresh
refreshquerybgs
}
alias -l updateuserchannels {
var %numc = $comchan($1, 0)
var %i = 1
while (%i <= %numc) {
dll $avatarsdir(avatar.dll) mRefreshWnd $chan($comchan($1, %i)).hwnd
inc %i
}
}
; $1 = mask to write, $2 = clear nickname
alias -l addchangeavatar_file {
%oldavatar = $dll($avatarsdir(avatar.dll), mBrowseForAvatar,)
if (%oldavatar !== $null) {
%oldavatar = $dll($avatarsdir(avatar.dll), mResampleImage, %oldavatar)
writenewavatar $1 $nopath(%oldavatar)
dll $avatarsdir(avatar.dll) mRefresh
$updateuserchannels($2)
}
}
; $1 = mask to write, $2 = clear nickname
alias -l addchangeavatar_url {
%oldavatar = $dll($avatarsdir(avatar.dll), mDownloadResampleAvatar,$?="Enter URL:")
if (%oldavatar !== $null) {
writenewavatar $1 $nopath(%oldavatar)
dll $avatarsdir(avatar.dll) mRefresh
$updateuserchannels($2)
}
}
alias -l addchangeavatar {
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == TRUE && $2 != $false) {
var %nickmask = $1 $+ !*@*
}
else {
var %nickmask = $1
}
%oldavatar = $getavatarwm(%nickmask)
var %canreplace = $true
if ($gettok(%oldavatar,1,61) == %nickmask) {
%canreplace = $?!="An avatar is already assigned for this nickname. Replace?"
if (%canreplace === $true) $removeavatar_file(%nickmask)
}
if (%canreplace === $true) {
if ($?!="Click yes to download the avatar from an URL." == $true) {
$addchangeavatar_url(%nickmask, $1)
}
else {
$addchangeavatar_file(%nickmask, $1)
}
}
}
alias -l addchangeavatar_mask {
%nickmask = $?="Please enter the mask you would like to use in the format nick!ident@host:"
if ($len(%nickmask) > 0) {
if ($?!="Click yes to download the avatar from an URL." == $true) {
$addchangeavatar_url(%nickmask, $1)
}
else {
$addchangeavatar_file(%nickmask, $1)
}
}
}
alias -l delavatar {
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == TRUE) {
var %fres = $removeavatar($address($1, 5))
}
else {
var %fres = $removeavatar($1)
}
if (%fres == 1) {
dll $avatarsdir(avatar.dll) mRefresh
$updateuserchannels($1)
}
}
menu nicklist {
-
Add\Replace avatar:{
addchangeavatar $1
refreshquerybgs
}
Add\Replace avatar (adv.):{
addchangeavatar_mask $1
refreshquerybgs
}
Remove avatar:{
delavatar $1
removequerybg $1
}
}
menu menubar {
-
Avatars configuration:{ avatarconfig }
}
alias -l removequerybg {
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == TRUE) {
background -x $mid(%nick, 1, $calc($pos(%nick,!,1) - 1))
}
else {
background -x $1
}
}
alias -l refreshquerybgs {
var %avatarsfilename = $avatarsdir(avatars.lst)
var %numlines = $lines(%avatarsfilename)
var %i = 1
var %s
while (%i <= %numlines) {
%s = $read(%avatarsfilename, %i)
if ($pos(%s,=,0) > 0) {
%nick = $gettok(%s, 1, 61)
if (%nick != "nobody") {
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == TRUE) {
%nick = $mid(%nick, 1, $calc($pos(%nick,!,1) - 1))
}
if ($readini($avatarsdir(avatar.ini), n, Main, use_nick_masks) == FALSE || (* !isin %nick && ? !isin %nick)) {
if (%avatars_query_bg > 0) {
var %avatarfn = $gettok(%s, 2, 61)
if ($nopath(%avatarfn) == %avatarfn) {
%avatarfn = $avatarsdir(avatars\ $+ %avatarfn)
}
if (%avatars_query_bg == 1) {
background -n %nick %avatarfn
}
elseif (%avatars_query_bg == 2) {
background -p %nick %avatarfn
}
}
else {
background -x %nick
}
}
}
}
inc %i
}
}