[script] n0=alias reseteasel { n1= .unset %easel* n2= .disable #easelclient.connect n3= .disable #easelclient.handshake n4= .disable #easel.hosttrap n5= .disable #easelhost.waitforconnection n6= .disable #easelhost.handshake n7= .disable #easel.connected n8= if ($sock(easelsocket).name == easelsocket) .sockclose easelsocket n9=} n10=alias button { n11= drawrect -n $1 $4 1 $2 $3 $calc($len($6-) * 8 + 6) 14 n12= drawrect -n $1 $5 1 $2 $3 $calc($len($6-) * 8 + 5) 13 n13= drawrect -nf $1 15 1 $calc($2 + 1) $calc($3 + 1) $calc($len($6-) * 8 + 4) 12 n14= drawtext -n $1 1 Fixedsys 12 $calc($2 + 4) $3 $6- n15=} n16=alias easel { n17= window -pf @EaselSetup 10 10 188 20 n18= drawrect -f @EaselSetup 0 1 0 0 188 20 n19= buttons both 10 11 n20=} n21=alias -l buttons { n22= if ($1 != 2) { n23= drawrect -n @EaselSetup $2 1 40 12 102 14 n24= drawrect -n @EaselSetup $3 1 40 12 101 13 n25= drawrect -nf @EaselSetup 15 1 41 13 100 12 n26= drawtext -n @EaselSetup 1 Fixedsys 12 44 12 Easel Client n27= } n28= if ($1 != 1) { n29= drawrect -n @EaselSetup $2 1 48 35 86 14 n30= drawrect -n @EaselSetup $3 1 48 35 85 13 n31= drawrect -nf @EaselSetup 15 1 49 36 84 12 n32= drawtext -n @EaselSetup 1 Fixedsys 12 52 35 Easel Host n33= } n34= drawdot @EaselSetup n35= %menustate = 1 n36=} n37=menu @EaselSetup { n38= sclick: { n39= if (%menustate == 1) { n40= if ($inrect($mouse.x,$mouse.y,41,13,100,12) == $true) { n41= buttons 1 11 10 n42= .timer -m 1 250 buttons 1 10 11 n43= .timer -m 1 400 easelclient n44= } n45= else if ($inrect($mouse.x,$mouse.y,49,36,84,12) == $true) { n46= buttons 2 11 10 n47= .timer -m 1 250 buttons 2 10 11 n48= .timer -m 1 400 hosteasel n49= } n50= } n51= else if (%menustate == 2) { n52= if ($inrect($mouse.x,$mouse.y,11,81,36,12) == $true) { n53= %easel.input = nick n54= buttons2 1 4 5 n55= .timer -m 1 250 buttons2 1 5 4 n56= .timer -m 1 400 easelclient2 n57= } n58= else if ($inrect($mouse.x,$mouse.y,59,81,60,12) == $true) { n59= %easel.input = IP n60= buttons2 2 4 5 n61= .timer -m 1 250 buttons2 2 5 4 n62= .timer -m 1 400 easelclient2 n63= } n64= } n65= } n66=} n67=alias -l easelclient2 { n68= drawrect -f @EaselSetup 0 1 10 80 110 14 n69= drawtext @EaselSetup 5 Fixedsys 12 10 80 Enter %easel.input to connect to: n70=} n71=alias -l easelclientgetport { n72= drawtext @EaselSetup 0 Fixedsys 12 10 80 Enter %easel.input to connect to: n73= drawtext @EaselSetup 5 Fixedsys 12 10 80 What port should I connect to? n74= %easel.port = get n75= %easel.client = $true n76=} n77=alias -l easelclientconnecttohost { n78= drawtext @EaselSetup 5 Fixedsys 12 10 80 Connecting to %easel.host on port %easel.port $+ ... n79= .enable #easelclient.connect n80= sockopen easelsocket %easel.host %easel.port n81=} n82=#easelclient.connect off n83=on 1:sockopen:easelsocket: { n84= if ($sockerr > 0) { n85= drawtext @EaselSetup 0 Fixedsys 12 10 80 Connecting to %easel.host on port %easel.port $+ ... n86= drawtext @EaselSetup 5 Fixedsys 12 10 80 Error opening socket! n87= halt n88= } n89= .disable #easelclient.connect n90= .enable #easelclient.handshake n91= sockwrite -n easelsocket CLIENT $me n92=} n93=#easelclient.connect end n94=#easelclient.handshake off n95=on 1:sockread:easelsocket: { n96= sockread %socketdata n97= %socketdata = $replace(%socketdata,$chr(32),$chr(1)) n98= if ($gettok(%socketdata,1,1) == HOST) { n99= .disable #easelclient.handshake n100= .enable #easel.connected n101= %easel.hostnick = $gettok(%socketdata,2,1) n102= drawtext @EaselSetup 0 Fixedsys 12 10 80 Connecting to %easel.host on port %easel.port $+ ... n103= drawtext @EaselSetup 5 Fixedsys 12 10 80 Connected with %easel.hostnick on %easel.host $+ : $+ %easel.port n104= easelconnected n105= } n106=} n107=#easelclient.handshake end n108=alias -l easelclient { n109= window -c @EaselSetup n110= window -pef @EaselSetup 10 10 392 100 n111= drawrect -f @EaselSetup 0 1 0 0 392 100 n112= drawrect -f @EaselSetup 11 1 100 10 200 50 n113= drawrect -f @EaselSetup 10 1 110 15 180 40 n114= drawrect -f @EaselSetup 12 1 120 20 160 30 n115= drawrect -f @EaselSetup 2 1 130 25 140 20 n116= drawtext @EaselSetup 0 Fixedsys 14 129 28 Easel Client Setup n117= buttons2 both 5 4 n118=} n119=alias -l buttons2 { n120= if ($1 != 2) { n121= drawrect -n @EaselSetup $2 1 10 80 38 14 n122= drawrect -n @EaselSetup $3 1 10 80 37 13 n123= drawrect -nf @EaselSetup 15 1 11 81 36 12 n124= drawtext -n @EaselSetup 1 Fixedsys 12 14 80 Nick n125= } n126= if ($1 != 1) { n127= drawrect -n @EaselSetup $2 1 58 80 62 14 n128= drawrect -n @EaselSetup $3 1 58 80 61 13 n129= drawrect -nf @EaselSetup 15 1 59 81 60 12 n130= drawtext -n @EaselSetup 1 Fixedsys 12 62 80 IP Addr n131= } n132= drawdot @EaselSetup n133= %menustate = 2 n134=} n135=alias -l hosteasel { n136= window -c @EaselSetup n137= window -pef @EaselSetup 10 10 392 100 n138= drawrect -f @EaselSetup 0 1 0 0 392 100 n139= drawrect -f @EaselSetup 11 1 100 10 200 50 n140= drawrect -f @EaselSetup 10 1 110 15 180 40 n141= drawrect -f @EaselSetup 12 1 120 20 160 30 n142= drawrect -f @EaselSetup 2 1 130 25 140 20 n143= drawtext @EaselSetup 0 Fixedsys 14 137 28 Easel Host Setup n144= drawtext @EaselSetup 2 Fixedsys 12 10 80 What port number should I listen on? n145= %easel.port = get n146= %easel.client = $false n147=} n148=on 1:input:@EaselSetup: { n149= if (%easel.port == get) { n150= %easel.port = $1 n151= %e = %easel.port n152= dec %e n153= inc %e n154= if (%e != %easel.port) { n155= %easel.port = get n156= drawtext @EaselSetup 4 Fixedsys 12 40 100 Invalid port number! n157= .timer 1 2 drawtext @EaselSetup 0 Fixedsys 12 40 100 Invalid port number! n158= } n159= else { n160= if (%easel.client == $true) { n161= window -c @EaselSetup n162= window -pf @EaselSetup 10 10 392 100 n163= drawrect -f @EaselSetup 0 1 0 0 392 100 n164= drawrect -f @EaselSetup 11 1 100 10 200 50 n165= drawrect -f @EaselSetup 10 1 110 15 180 40 n166= drawrect -f @EaselSetup 12 1 120 20 160 30 n167= drawrect -f @EaselSetup 2 1 130 25 140 20 n168= drawtext @EaselSetup 0 Fixedsys 14 129 28 Easel Client Setup n169= easelclientconnecttohost n170= } n171= else { n172= .enable #easelhost.waitforconnection n173= socklisten waitsocket %easel.port n174= window -c @EaselSetup n175= window -pf @EaselSetup 10 10 392 100 n176= drawrect -f @EaselSetup 0 1 0 0 392 100 n177= drawrect -f @EaselSetup 11 1 100 10 200 50 n178= drawrect -f @EaselSetup 10 1 110 15 180 40 n179= drawrect -f @EaselSetup 12 1 120 20 160 30 n180= drawrect -f @EaselSetup 2 1 130 25 140 20 n181= drawtext @EaselSetup 0 Fixedsys 14 137 28 Easel Host Setup n182= drawtext @EaselSetup 2 Fixedsys 12 10 80 Listening for Easel connection on port %easel.port n183= } n184= } n185= } n186= else if (%easel.input != $null) { n187= if (%easel.input == nick) { n188= drawtext @EaselSetup 0 Fixedsys 12 10 80 Enter %easel.input to connect to: n189= drawtext @EaselSetup 5 Fixedsys 12 10 80 Attempting to resolve $1 $+ 's IP addr... n190= %easel.nick = $1 n191= .enable #easel.hosttrap n192= .userhost $1 n193= } n194= else { n195= %easel.host = $1 n196= easelclientgetport n197= } n198= .unset %easel.input n199= } n200= halt n201=} n202=#easel.hosttrap off n203=raw 302:*: { n204= drawtext @EaselSetup 0 Fixedsys 12 10 80 Attempting to resolve %easel.nick $+ 's IP addr... n205= .disable #easel.hosttrap n206= %easel.host = $gettok($2,2,64) n207= easelclientgetport n208=} n209=#easel.hosttrap end n210=#easelhost.waitforconnection on n211=on 1:socklisten:waitsocket: { n212= sockaccept easelsocket n213= sockclose waitsocket n214= .disable #easelhost.waitforconnection n215= .enable #easelhost.handshake n216= sockwrite -n easelsocket HOST $me n217=} n218=#easelhost.waitforconnection end n219=#easelhost.handshake off n220=on 1:sockread:easelsocket: { n221= sockread %socketdata n222= %socketdata = $replace(%socketdata,$chr(32),$chr(1)) n223= if ($gettok(%socketdata,1,1) == CLIENT) { n224= drawtext @EaselSetup 0 Fixedsys 12 10 80 Listening for Easel connection on port %easel.port n225= %easel.client = $gettok(%socketdata,2,1) n226= drawtext @EaselSetup 2 Fixedsys 12 10 80 Connected with client %easel.client on port %easel.port n227= .disable #easelhost.handshake n228= easelconnected n229= } n230=} n231=#easelhost.handshake end n232=alias easelconnected { n233= window -fp @Easel 10 135 400 400 n234= drawrect -f @Easel 0 1 0 0 400 400 n235= .enable #easel.connected n236= window -fp @EaselColors 420 135 128 128 n237= drawrect -f @EaselColors 0 1 0 0 128 128 n238= %i = 0 n239= :topi n240= inc %i n241= %j = 0 n242= :topj n243= inc %j n244= %c = $calc(%i * 4) n245= inc %c %j n246= dec %c 5 n247= drawrect -f @EaselColors %c 1 $calc(%i * 32 - 31) $calc(%j * 32 - 31) 30 30 n248= if (%j < 4) goto topj n249= if (%i < 4) goto topi n250= .unset %i %j n251= drawrect @EaselColors 1 1 0 32 32 32 n252= %easel.localcolor = 1 n253= %easel.remotecolor = 1 n254= window -fp @EaselTools 420 285 128 128 n255= drawrect -f @EaselTools 0 1 0 0 128 128 n256= button @EaselTools 3 3 3 9 Flood All n257= %easel.localsize = 2 n258= %easel.remotesize = 2 n259= drawrect -nf @EaselTools 10 2 0 $calc((%easel.localsize / 2) * 12 + 9) 128 13 n260= drawline -n @EaselTools 1 2 0 28 128 28 n261= drawline -n @EaselTools 1 4 0 40 128 40 n262= drawline -n @EaselTools 1 6 0 52 128 52 n263= drawline -n @EaselTools 1 8 0 64 128 64 n264= drawline -n @EaselTools 1 10 0 76 128 76 n265= drawdot @EaselTools n266=} n267=#easel.connected off n268=on 1:sockread:easelsocket: { n269= sockread %socketdata n270= %socketdata = $replace(%socketdata,$chr(32),$chr(1)) n271= if ($gettok(%socketdata,1,1) == D) { n272= %easel.remotex = $gettok(%socketdata,2,1) n273= %easel.remotey = $gettok(%socketdata,3,1) n274= drawline @Easel %easel.remotecolor %easel.remotesize %easel.remotex %easel.remotey %easel.remotex %easel.remotey n275= } n276= if ($gettok(%socketdata,1,1) == C) %easel.remotecolor = $gettok(%socketdata,2,1) n277= if ($gettok(%socketdata,1,1) == L) drawrect -f @Easel %easel.remotecolor 1 0 0 $window(@Easel).bw $window(@Easel).bh n278= if ($gettok(%socketdata,1,1) == T) { n279= drawline @Easel %easel.remotecolor %easel.remotesize %easel.remotex %easel.remotey $gettok(%socketdata,2,1) $gettok(%socketdata,3,1) n280= %easel.remotex = $gettok(%socketdata,2,1) n281= %easel.remotey = $gettok(%socketdata,3,1) n282= } n283= if ($gettok(%socketdata,1,1) == S) %easel.remotesize = $gettok(%socketdata,2,1) n284=} n285=menu @EaselTools { n286= sclick: { n287= if ($inrect($mouse.x,$mouse.y,4,4,76,12) == $true) { n288= button @EaselTools 3 3 9 3 Flood All n289= drawdot @EaselTools n290= .timer -m 1 250 easeltoolsmisc1 n291= .timer -m 1 400 easeltoolsmisc2 n292= } n293= if ($inrect($mouse.x,$mouse.y,0,20,128,62) == $true) { n294= drawrect -nf @EaselTools 0 2 0 $calc((%easel.localsize / 2) * 12 + 9) 128 13 n295= drawline -n @EaselTools 1 %easel.localsize 0 $calc((%easel.localsize / 2) * 12 + 16) 128 $calc((%easel.localsize / 2) * 12 + 16) n296= %easel.localsize = $calc($int($calc((($mouse.y - 20) / 12) + 1)) * 2) n297= .sockwrite easelsocket S %easel.localsize n298= drawrect -nf @EaselTools 10 2 0 $calc((%easel.localsize / 2) * 12 + 9) 128 13 n299= drawline -n @EaselTools 1 %easel.localsize 0 $calc((%easel.localsize / 2) * 12 + 16) 128 $calc((%easel.localsize / 2) * 12 + 16) n300= drawdot @EaselTools n301= } n302= } n303=} n304=alias -l easeltoolsmisc1 { button @EaselTools 3 3 3 9 Flood All | drawdot @EaselTools } n305=alias -l easeltoolsmisc2 { drawrect -f @Easel %easel.localcolor 1 0 0 $window(@Easel).bw $window(@Easel).bh | sockwrite -n easelsocket L } n306=menu @EaselColors { n307= sclick: { n308= %x = 0 n309= %y = 0 n310= %elc = $calc(%easel.localcolor + 1) n311= :repeat n312= inc %x n313= dec %elc 4 n314= if (%elc > 0) goto repeat n315= %y = %elc + 3 n316= dec %x n317= %x = $calc(%x * 32) n318= %y = $calc(%y * 32) n319= drawrect @EaselColors 0 1 %x %y 32 32 n320= %x = $calc($int($calc($mouse.x / 32)) + 1) n321= %y = $calc($int($calc($mouse.y / 32)) + 1) n322= drawrect @EaselColors 1 1 $calc(%x * 32 - 32) $calc(%y * 32 - 32) 32 32 n323= %easel.localcolor = $calc(%x * 4) n324= inc %easel.localcolor %y n325= dec %easel.localcolor 5 n326= sockwrite -n easelsocket C %easel.localcolor n327= .unset %elc %x %y n328= } n329=} n330=menu @Easel { n331= sclick: { n332= %easel.localx = $mouse.x n333= %easel.localy = $mouse.y n334= drawline @Easel %easel.localcolor %easel.localsize %easel.localx %easel.localy %easel.localx %easel.localy n335= sockwrite -n easelsocket D $mouse.x $mouse.y n336= } n337= mouse: { n338= if ($mouse.key & 1) { n339= drawline @Easel %easel.localcolor %easel.localsize %easel.localx %easel.localy $mouse.x $mouse.y n340= %easel.localx = $mouse.x n341= %easel.localy = $mouse.y n342= sockwrite -n easelsocket T $mouse.x $mouse.y n343= } n344= } n345=} n346=on 1:close:@Easel: { n347= .disable #easel.connected n348= sockclose easelsocket n349= window -c @EaselSetup n350= window -c @EaselColors n351= window -c @EaselTools n352=} n353=on 1:close:@EaselSetup: { n354= .disable #easel.connected n355= sockclose easelsocket n356= window -c @Easel n357= window -c @EaselColors n358= window -c @EaselTools n359=} n360=on 1:close:@EaselColors: { n361= .disable #easel.connected n362= sockclose easelsocket n363= window -c @Easel n364= window -c @EaselSetup n365= window -c @EaselTools n366=} n367=on 1:close:@EaselTools: { n368= .disable #easel.connected n369= sockclose easelsocket n370= window -c @EaselSetup n371= window -c @EaselColors n372= window -c @Easel n373=} n374=on 1:sockclose:easelsocket: { n375= .disable #easel.connected n376= window -c @Easel n377= window -c @EaselSetup n378= window -c @EaselColors n379= window -c @EaselTools n380=} n381=#easel.connected end