Menu * { . MithX : dialog -md Clone Clone } Alias Clone { If ($Dialog(Clone)) { Dialog -v Clone } Else { Dialog -md Clone Clone } } dialog Clone { title "MithX" size -1 -1 577 512 option pixels tab "Settings", 75, 8 8 559 463 box "Settings", 1, 18 41 540 420, tab 75 edit "irc.gudhak.net", 2, 356 78 135 21, tab 75 autohs text "Server:", 3, 356 62 42 16, tab 75 edit "6667", 4, 494 78 44 20, tab 75 limit 5 text "Protocol:", 5, 241 237 42 16, tab 75 combo 6, 253 256 80 68, tab 75 size drop box "Connection", 7, 352 49 196 204, tab 75 box "Nickname and Real Name", 8, 351 259 199 195, tab 75 text "Initial Sockets:", 9, 359 106 77 16, tab 75 edit "128", 10, 494 102 42 20, tab 75 limit 4 radio "Random", 11, 354 329 72 20, tab 75 radio "List:", 12, 354 288 42 20, tab 75 radio "Other:", 13, 354 309 54 20, tab 75 edit "Broken!", 14, 396 289 96 20, disable tab 75 autohs edit "", 15, 409 310 130 20, disable tab 75 limit 10 button "&Browse", 16, 494 288 52 20, disable tab 75 text "UserMode:", 17, 370 165 53 16, tab 75 edit "+i", 18, 428 163 60 20, tab 75 edit "", 19, 366 200 168 45, tab 75 multi return autohs autovs text "Raw:", 20, 371 183 31 16, tab 75 box "Proxy/Socks List", 26, 24 58 320 396, tab 75 edit "", 85, 413 401 126 21, tab 75 autohs limit 70 text "Host/IP:", 27, 31 75 43 16, tab 75 text "Port:", 28, 239 76 28 17, tab 75 edit "", 29, 79 72 157 20, tab 75 limit 15 edit "", 30, 269 74 70 20, tab 75 limit 5 button "Add", 31, 252 113 82 22, tab 75 button "Remove", 32, 251 138 82 22, tab 75 button "Import File", 33, 250 162 82 22, tab 75 list 34, 29 96 208 350, tab 75 size button "Clear All", 35, 249 211 82 22, tab 75 check "Respond to CTCP?", 81, 359 126 113 18, tab 75 text "Real Name:", 82, 358 361 56 16, tab 75 button "Clipboard", 83, 250 187 82 21, tab 75 box "Perform On Connect", 86, 360 149 182 99, tab 75 radio "Random", 87, 358 420 72 20, tab 75 radio "Other:", 88, 358 400 54 20, tab 75 radio "List:", 89, 358 379 42 20, tab 75 edit "Broken!", 90, 401 379 96 20, disable tab 75 autohs button "&Browse", 91, 498 378 52 20, disable tab 75 text "Local connections are broke once again!", 96, 243 337 96 43, tab 75 center tab "Actions", 76 box "Actions", 36, 177 40 380 420, tab 76 box "Nicklist", 37, 16 40 156 356, tab 76 button "Join", 41, 184 79 67 20, disable tab 76 edit "", 42, 255 78 84 21, tab 76 autohs button "Part", 43, 183 102 67 20, disable tab 76 edit "", 44, 255 101 83 21, tab 76 autohs edit "", 45, 340 103 204 21, tab 76 autohs button "Join Part", 46, 183 125 67 20, disable tab 76 edit "", 47, 253 355 84 21, hide tab 76 autohs edit "", 48, 338 378 204 21, hide tab 76 autohs button "Message", 49, 183 189 67 20, disable tab 76 edit "", 50, 254 190 83 21, tab 76 autohs edit "", 51, 340 190 204 21, tab 76 autohs button "Notice", 52, 183 213 67 20, disable tab 76 edit "", 53, 254 213 84 21, tab 76 autohs edit "", 54, 340 213 204 21, tab 76 autohs button "Describe", 55, 183 237 67 20, disable tab 76 edit "", 56, 254 237 84 21, tab 76 autohs edit "", 57, 339 237 204 21, tab 76 autohs button "CTCP", 58, 182 404 67 20, hide disable tab 76 edit "", 59, 253 404 84 21, tab 76 autohs combo 60, 340 404 204 71, tab 76 size edit drop button "DCC Send", 61, 182 380 67 20, hide disable tab 76 edit "", 62, 254 125 84 21, tab 76 autohs edit "", 63, 340 125 204 21, tab 76 autohs button "DCC Chat", 64, 182 355 67 20, disable tab 76 edit "", 65, 253 379 84 21, tab 76 autohs button "Nick", 66, 99 363 67 20, tab 76 radio "Nicklist:", 68, 26 267 54 20, tab 76 radio "Other:", 69, 26 324 54 20, tab 76 radio "Random", 67, 25 249 58 20, tab 76 button "Browse", 72, 99 307 67 20, disable tab 76 edit "Broken!", 70, 25 285 141 21, disable tab 76 autohs edit "", 74, 253 430 292 21, tab 76 multi return autohs autovs button "Raw", 73, 182 430 67 20, disable tab 76 edit "", 71, 25 340 141 21, disable tab 76 limit 10 list 38, 24 56 140 192, tab 76 size extsel vsbar text "Control:", 39, 413 57 42 16, tab 76 combo 40, 461 53 92 60, tab 76 size drop box "Statistics", 21, 16 400 156 60, tab 76 text "Total Sockets:", 23, 20 436 96 16, tab 76 center text "Connected Sockets:", 22, 20 420 96 16, tab 76 center text "0", 24, 120 420 42 16, tab 76 text "0", 25, 120 436 42 16, tab 76 text "---------------------------------------------------------------------------------------", 92, 183 150 367 13, tab 76 center tab "Leech!", 97 edit "", 98, 24 56 260 21, tab 97 autohs button "&Add URL", 99, 288 56 67 20, tab 97 list 100, 24 80 332 340, tab 97 size hsbar box "URL List", 101, 16 40 348 420, tab 97 box "Taken Proxies/Socks", 102, 368 40 188 261, tab 97 list 103, 376 56 172 197, tab 97 size button "Export", 104, 465 254 84 20, tab 97 text "Completed:", 105, 368 327 58 16, tab 97 text "0", 106, 432 346 122 16, tab 97 button "Get List", 107, 368 366 187 25, tab 97 button "Move to Proxy/Socks List", 109, 376 275 173 20, tab 97 text "Total Sites:", 110, 368 345 58 16, tab 97 text "0", 111, 432 327 122 16, tab 97 text "Socks/Proxies Taken:", 112, 368 307 106 16, tab 97 text "0", 113, 480 307 74 16, tab 97 button "Clear", 108, 376 253 84 20, tab 97 button "Remove Selected", 114, 24 432 163 20, tab 97 button "Remove All", 115, 192 432 163 20, tab 97 button "&Connect", 77, 28 473 98 35 button "&Disconnect", 78, 142 472 99 36 button "Clos&e", 79, 490 480 75 25 button "Connected &IP:Ports", 80, 449 4 115 23 button "Close Open &Sockets", 84, 379 480 107 25 text "MithX Devo v0.6", 93, 213 7 99 16, center link "#Remy", 94, 326 7 44 16 link "Known Bugs", 95, 376 7 63 16 } On *:Dialog:Clone:Init:*: { Did -a $DName 6 Normal Did -a $DName 6 Proxy Did -a $DName 6 Sock Did -c $DName 6 2 Did -a $DName 40 All Did -a $DName 40 Selected Did -c $DName 40 1 Did -a $DName 60 PING Did -a $DName 60 TIME Did -a $DName 60 VERSION Did -c $DName 11 Did -c $DName 67 Add Socks } On *:Dialog:Clone:Edit:*: { If ($Did == 42) { If ($Left($Did(42),1) == $Chr(35)) && ($Count($Did(42),$Chr(32)) <= 1) { Did -e $DName 41 } Else { Did -b $DName 41 } } If ($Did == 44) { If ($Left($Did(44),1) == $Chr(35)) && ($Count($Did(44),$Chr(32)) == 0) { Did -e $DName 43 } Else { Did -b $DName 43 } } If ($Did == 47) { If ($Left($Did(47),1) == $Chr(35)) && ($Count($Did(47),$Chr(32)) == 0) { Did -e $DName 46 } Else { Did -b $DName 46 } } If ($Did == 50) { If ($Count($Did(50),$Chr(32)) == 0) && ($Len($Did(50)) >= 1) && ($Did(51)) { Did -e $DName 49 } Else { Did -b $DName 49 } } If ($Did == 51) { If ($Count($Did(50),$Chr(32)) == 0) && ($Len($Did(50)) >= 1) && ($Did(51)) { Did -e $DName 49 } Else { Did -b $DName 49 } } If ($Did == 53) { If ($Count($Did(53),$Chr(32)) == 0) && ($Len($Did(53)) >= 1) && ($Did(54)) { Did -e $DName 52 } Else { Did -b $DName 52 } } If ($Did == 54) { If ($Count($Did(53),$Chr(32)) == 0) && ($Len($Did(50)) >= 1) && ($Did(54)) { Did -e $DName 52 } Else { Did -b $DName 52 } } If ($Did == 56) { If ($Count($Did(56),$Chr(32)) == 0) && ($Len($Did(56)) >= 1) && ($Did(57)) { Did -e $DName 55 } Else { Did -b $DName 55 } } If ($Did == 57) { If ($Count($Did(56),$Chr(32)) == 0) && ($Len($Did(56)) >= 1) && ($Did(57)) { Did -e $DName 55 } Else { Did -b $DName 55 } } If ($Did == 59) { If ($Count($Did(59),$Chr(32)) == 0) && ($Len($Did(59)) >= 1) && ($Did(60)) { Did -e $DName 58 } Else { Did -b $DName 58 } } If ($Did == 60) { If ($Count($Did(59),$Chr(32)) == 0) && ($Len($Did(59)) >= 1) && ($Did(60)) { Did -e $DName 58 } Else { Did -b $DName 58 } } If ($Did == 62) { If ($Count($Did(62),$Chr(32)) == 0) && ($Len($Did(62)) >= 1) && ($Left($Did(62),1) != $Chr(35)) && ($Did(63)) { Did -e $DName 61 } Else { Did -b $DName 61 } } If ($Did == 63) { If ($Count($Did(62),$Chr(32)) == 0) && ($Len($Did(62)) >= 1) && ($Left($Did(62),1) != $Chr(35)) && ($Did(63)) { Did -e $DName 61 } Else { Did -b $DName 61 } } If ($Did == 65) { If ($Count($Did(65),$Chr(32)) == 0) && ($Len($Did(65)) >= 1) && ($Left($Did(65),1) != $Chr(35)) { Did -e $DName 64 } Else { Did -b $DName 64 } } If ($Did == 74) { If ($Len($Did(74)) >= 1) { Did -e $DName 73 } Else { Did -b $DName 73 } } If ($Did == 70) { If ($Did(70)) { Did -e $DName 66 } Else { Did -b $DName 66 } } If ($Did == 71) { If ($Did(71)) { Did -e $DName 66 } Else { Did -b $DName 66 } } } Alias Clone.Error { Var %E = $Input($1-,o,Clone) } On *:Dialog:Clone:SClick:*: { If ($Did == 31) { If (*.*.* iswm $Did(29)) && ($Did(30) <= 65535) && ($Did(30) >= 1) { Did -a $DName 34 $Did(29) $Did(30) } Else { Clone.Error Invalid Sock/Proxy or Port } } If ($Did == 32) && ($Did(34).Sel) { Did -d $DName 34 $Did(34).Sel } If ($Did == 33) { Var %F = $SFile($mIRCDir,Clone,Import) If (%F) { Var %I = 1 While ($Read(%F,%I)) { Var %F1 = $Read(%F,%I) If ($Gettok(%F1,0,58) == 2) { Var %F1 = $Replace(%F1,$Chr(58),$Chr(32)) } If ($Gettok(%F1,0,32) != 2) || ($Abs($Gettok(%F1,2,32)) == 0) { Clone.Error Invalid Sock/Proxy file | Return } Else { Did -a $DName 34 %F1 } Inc %I } } } If ($Did == 83) { Var %I = 1 While ($CB(%I)) { Var %F1 = $CB(%I) If ($Gettok(%F1,0,58) == 2) { Var %F1 = $Replace(%F1,$Chr(58),$Chr(32)) } If ($Gettok(%F1,0,32) != 2) || ($Abs($Gettok(%F1,2,32)) == 0) { Clone.Error Invalid Socks/Proxys in Clipboard | Return } Else { Did -a $DName 34 %F1 } Inc %I } } If ($Did == 35) { Did -r $DName 34 } If ($Did == 11) { Did -b $DName 14 | Did -b $DName 15 | Did -b $DName 16 } If ($Did == 12) { Did -e $DName 14 | Did -b $DName 15 | Did -e $DName 16 } If ($Did == 13) { Did -b $DName 14 | Did -e $DName 15 | Did -b $DName 16 } If ($Did == 67) { Did -b $DName 70 | Did -b $DName 71 | Did -b $DName 72 | Did -e $DName 66 } If ($Did == 68) { Did -e $DName 70 | Did -b $DName 71 | Did -e $DName 72 If ($Did(70)) { Did -e $DName 66 } Else { Did -b $DName 66 } } If ($Did == 69) { Did -b $DName 70 | Did -e $DName 71 | Did -b $DName 72 If ($Did(71)) { Did -e $DName 66 } Else { Did -b $DName 66 } } If ($Did == 16) { Var %F = $SFile($mIRCDir,Clone,Import) If (%F) { Did -ra $DName 14 %F } } If ($Did == 72) { Var %F = $SFile($mIRCDir,Clone,Import) If (%F) { Did -ra $DName 70 %F | Did -e $DName 66 } } If ($Did == 60) { If ($Count($Did(59),$Chr(32)) == 0) && ($Len($Did(59)) >= 1) && ($Did(60)) { Did -e $DName 58 } Else { Did -b $DName 58 } } If ($Did == 41) { Clone.Do $Did(40) JOIN $Did(42) } If ($Did == 43) { Clone.Do $Did(40) PART $Did(44) : $+ $Did(45) } If ($Did == 46) { Clone.Do $Did(40) JOINPART $Did(47) : $+ $Did(48) } If ($Did == 49) { Clone.Do $Did(40) PRIVMSG $Did(50) : $+ $Did(51) } If ($Did == 52) { Clone.Do $Did(40) NOTICE $Did(53) : $+ $Did(54) } If ($Did == 55) { Clone.Do $Did(40) PRIVMSG $Did(56) :ACTION $Did(57) $+  } If ($Did == 58) { Clone.Do $Did(40) PRIVMSG $Did(59) : $+ $Did(60) $+  } If ($Did == 61) { Clone.Do $Did(40) PRIVMSG $Did(62) :DCC SEND $Did(63) $Rand(0,4294967294) 1024 $Rand(10000,500000) $+  } If ($Did == 64) { Clone.Do $Did(40) PRIVMSG $Did(65) :DCC CHAT chat $Rand(0,4294967294) 1024 } If ($Did == 66) { Clone.Do $Did(40) NICK } If ($Did == 73) { Var %I = 1 While ($Did(74,%I)) { Clone.Do $Did(40) RAW $Did(74,%I) | Inc %I } } If ($Did == 77) { If (!$Did(34,1)) && (($Did(6) == Proxy) || ($Did(6) == Sock)) { Clone.Error Enter $Did(6) to the $Did(6) list } ElseIf (*.*.* !iswm $Did(2)) { Clone.Error Enter a valid Server } ElseIf ($Did(4) <= 0) && ($Did(4) >= 65535) { Clone.Error Enter a valid Port } ElseIf (!$Did(10)) || ($Did(10) !isnum) { Clone.Error Enter the number clones to connect } ElseIf ($Did(12).State == 1) && ($Exists($Did(14)) == $False) { Clone.Error Nicklist doesnt Exist } ElseIf ($Did(13).State == 1) && (!$Did(15)) { Clone.Error Enter a Nickname } ElseIf ($Did(6) == Sock) && ($Remove($Did(2),.) !isnum) { .Enable #Clone.DNS | .DNS $Did(2) } Else { .TimerClone.Go $Did(10) 0 Clone.Go } } If ($Did == 78) { Did -r $DName 38 | Did -ra $DName 24 0 | Did -ra $DName 25 0 | SockClose Clone.* | Unset %Clone.* } If ($Did == 79) { SockClose Clone.* | Dialog -x $DName } If ($Did == 80) { Clone.IPs } If ($Did == 84) { Var %I = 1 While ($Sock(Clone.*,%I)) { If (!$Sock(Clone.*,%I).Mark) { SockClose $Sock(Clone.*,%I) } Inc %I } Did -ra Clone 25 $Sock(Clone.*,0) } If ($Did == 99) { Did -a $DName 100 $Did(98) Did -ra $DName 106 $Calc($Did(106) + 1) } If ($Did == 104) { Var %F = $Input(Enter Filename:,ego,Clone) If (%F) { Var %I = 1 While ($Did(103,%I)) { Write %F $Did(103,%I) | Inc %I } } } If ($Did == 107) { Did -ra $DName 111 0 Var %I = 1 While ($Did(100,%I)) { SockQueue CloneGet. [ $+ [ %I ] ] $Gettok($Remove($Did(100,%I),http://,www.),1,47) 80 Set %Clone.Get.URL. [ $+ [ %I ] ] $Gettok($Remove($Did(100,%I),http://,www.),1,47) Set %Clone.Get.Ext. [ $+ [ %I ] ] $Iif($Gettok($Remove($Did(100,%I),http://,www.),2-,47),$Chr(47) $+ $Gettok($Remove($Did(100,%I),http://,www.),2-,47),$Chr(47)) Inc %I } } If ($Did == 108) { Did -r $DName 103 } If ($Did == 109) { Did -r $DName 34 Var %I = 1 While ($Did(103,%I)) { Did -a $DName 34 $Replace($Did(103,%I),$Chr(58),$Chr(32)) | Inc %I } } If ($Did == 114) && ($Did(100).Sel) { Did -d $DName 100 $Did(100).Sel } If ($Did == 115) { Did -r $DName 100 } } On *:SockOpen:CloneGet.*: { SockWrite -n $SockName GET %Clone.Get.EXT. [ $+ [ $Gettok($SockName,2,46) ] ] HTTP/1.0 SockWrite -n $SockName Accept: */* SockWrite -n $SockName Host: www. $+ %Clone.Get.URL. [ $+ [ $Gettok($SockName,2,46) ] ] SockWrite -n $SockName Connection: Keep-Alive SockWrite -n $SockName Unset %Clone.Get.EXT. [ $+ [ $Gettok($SockName,2,46) ] ] Unset %Clone.Get.URL. [ $+ [ $Gettok($SockName,2,46) ] ] } On *:SockRead:CloneGet.*: { SockRead %R If $WildTok(%R,*.*.*.*:*,1,32) && ($Remove($WildTok(%R,*.*.*.*:*,1,32),$Chr(46),$Chr(58)) isnum) { Did -a Clone 103 $WildTok(%R,*.*.*.*:*,1,32) Did -ra Clone 113 $Calc($Did(Clone,113) + 1) } Unset %R } Alias SockQueue { If ($Sock(CloneGet.*,0) <= 6) { SockOpen $1- } Else { Set %Clone.Queue. [ $+ [ $Rand(1,9999999) ] ] $1- } } On *:SockClose:CloneGet.* { If ($Var(%Clone.Queue.*,1)) { SockOpen $Var(%Clone.Queue.*,1).Value Unset $Var(%Clone.Queue.*,1) } Did -ra Clone 111 $Calc($Did(Clone,111) + 1) } #Clone.DNS off On *:DNS: { If ($RAddress) { Did -ra Clone 2 $RAddress | .TimerClone.Go $Did(Clone,10) 0 Clone.Go } Else { Clone.Error Unable to resolve DNS of $Did(Clone,10) } .Disable #Clone.DNS Halt } #Clone.DNS End Alias Clone.Do { If ($1 == All) { Var %I = 1 While ($Sock(Clone.*,%I)) { If ($2 == JOINPART) { SockWrite -nt $Sock(Clone.*,%I) JOIN $3 | SockWrite -nt $Sock(Clone.*,%I) PART $3- } ElseIf ($2 == RAW) { SockWrite -nt $Sock(Clone.*,%I) $Replace($3-,^Nick^,$Clone.Nick($Sock(Clone.*,%I))) } ElseIf ($2 == NICK) { If ($Did(Clone,67).State == 1) { SockWrite -nt $Sock(Clone.*,%I) NICK $Clone.RandNick } If ($Did(Clone,68).State == 1) { SockWrite -nt $Sock(Clone.*,%I) NICK $Gettok($Read($Did(Clone,70)),1,32) } If ($Did(Clone,69).State == 1) { SockWrite -nt $Sock(Clone.*,%I) NICK $Did(Clone,71) $+ $Clone.RandNick(2) } } Else { SockWrite -nt $Sock(Clone.*,%I) $2- } Inc %I } } If ($1 == Selected) { Var %I = 1 While ($Did(Clone,38,%I)) { If ($Did(Clone,38,%I).State == 1) { Var %J = 1 While ($Sock(Clone.*,%J)) { If ($Sock(Clone.*,%J).Mark == $Did(Clone,38,%I)) { If ($2 == JOINPART) { SockWrite -nt $Sock(Clone.*,%J) JOIN $3 | SockWrite -nt $Sock(Clone.*,%J) PART $3- } ElseIf ($2 == RAW) { SockWrite -nt $Sock(Clone.*,%J) $Replace($3-,^Nick^,$Clone.Nick($Sock(Clone.*,%J))) } ElseIf ($2 == NICK) { If ($Did(Clone,67).State == 1) { SockWrite -nt $Sock(Clone.*,%J) NICK $Clone.RandNick } If ($Did(Clone,68).State == 1) { SockWrite -nt $Sock(Clone.*,%J) NICK $Gettok($Read($Did(Clone,70)),1,32) } If ($Did(Clone,69).State == 1) { SockWrite -nt $Sock(Clone.*,%J) NICK $Did(Clone,71) } } Else { SockWrite -nt $Sock(Clone.*,%J) $2- } } Inc %J } } Inc %I } } } Alias Clone.Conn { If ($Did(Clone,38,1)) { Return $Did(Clone,38).Lines } } On *:SockOpen:Clone.*: { If ($SockErr) { SockClose $SockName | Did -ra Clone 25 $Sock(Clone.*,0) | Return } If (Clone.Sock.* iswm $SockName) { BSet &Clone 1 5 1 0 | SockWrite $SockName &Clone } If (Clone.Proxy.* iswm $SockName) { SockWrite $SockName CONNECT $+($Did(Clone,2),:,$Did(Clone,4)) HTTP/1.1 SockWrite $SockName $CRLF $+ $CRLF $+ $CRLF Clone.Conn.User $SockName } If (Clone.Normal.* iswm $Sockname) { Clone.Conn.User $SockName } Did -ra Clone 25 $Sock(Clone.*,0) } On *:SockRead:Clone.*: { If ($SockErr) { SockClose $SockName | Did -ra Clone 25 $Sock(Clone.*,0) | Return } If (Clone.Sock.* iswm $SockName) && (!$Sock($SockName).Mark) { SockRead &Read If ($BVar(&Read,1,2) == 5 0) && ($BVar(&Read,3) != 0) { Var %Port = $Gettok($LongIP($Did(Clone,4)),3,46) $Gettok($LongIP($Did(Clone,4)),4,46) Var %Serv = $Replace($Did(Clone,2),$Chr(46),$Chr(32)) BSet &Clone.Send 1 5 1 0 1 %Serv %Port SockWrite $SockName &Clone.Send } If ($BVar(&Read,1,3) == 5 0 0) { SockMark $SockName 1 | Clone.Conn.User $SockName } } SockRead %Clone.Read If (%Clone.Read) { Echo %Clone.Read } Tokenize 32 %Clone.Read Unset %Clone.Read If (** iswm $1-) && (!$Sock($SockName).Mark) { SockClose $SockName } If ($1 == PING) { SockWrite -nt $SockName PONG : $+ $Remove($2,:) } If ($2 == PRIVMSG) && ($Did(Clone,81).State == 1) { If ($4 == :PING) { SockWrite -nt $SockName NOTICE $Remove($Gettok($1,1,33),:) :PING $5 } If ($4 == :TIME) { SockWrite -nt $SockName NOTICE $Remove($Gettok($1,1,33),:) :TIME $ASCTime($Calc($Rand($Calc($CTime - 10000),$Calc($CTime + 10000)))) $+  } If ($4 == :VERSION) { SockWrite -nt $SockName NOTICE $Remove($Gettok($1,1,33),:) :VERSION mIRC v6.16 Khaled Mardam-Bey } } If ($2 == 001) { Var %I = 1 While ($Did(Clone,19,%I)) { SockWrite -nt $SockName $Replace($Did(Clone,19,%I),^Nick^,$3) | Inc %I } If ($3) { Did -a Clone 38 $3 } Did -ra Clone 24 $Iif($Clone.Conn,$Clone.Conn,0) SockWrite -nt $SockName Mode $3 $Did(Clone,18) SockMark $SockName $3 } If ($2 == 433) { If ($Sock($SockName).Mark) && ($Sock($SockName).Mark != 1) { If ($Did(Clone,67).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 SockWrite -nt $SockName NICK $Clone.RandNick } If ($Did(Clone,68).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 SockWrite -nt $SockName NICK $Read($Did(Clone,70)) } If ($Did(Clone,69).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 SockWrite -nt $SockName NICK $Did(Clone,71) $+ $Clone.RandNick(2) } } Else { If ($Did(Clone,11).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 SockWrite -nt $SockName NICK $Clone.RandNick } If ($Did(Clone,12).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 Clone.Conn.User $SockName } If ($Did(Clone,13).State == 1) { .TimerClone. [ $+ [ $SockName ] ] 1 1 SockWrite -nt $SockName NICK $Did(Clone,15) $+ $Clone.RandNick(2) } } } If ($2 == NICK) && ($Remove($Gettok($1,1,33),:) == $Sock($SockName).Mark) { Var %I = 1 While ($Did(Clone,38,%I)) { If ($Did(Clone,38,%I) == $Remove($Gettok($1,1,33),:)) { Did -o Clone 38 %I $Remove($3,:) } Inc %I } SockMark $SockName $Remove($3,:) } Did -ra Clone 25 $Sock(Clone.*,0) } Alias Clone.Ignore { Var %I = 1 While ($Did(Clone,96,%I)) { If ($Did(Clone,96,%I) iswm $Remove($1,$Chr(58))) { Return $Did(Clone,96,%I) } Inc %I } } On *:SockClose:Clone.*: { If ($Sock($SockName).Mark) && ($Sock($SockName).Mark != 1) { Var %I = 1 While ($Did(Clone,38,%I)) { If ($Did(Clone,38,%I) == $Sock($SockName).Mark) { Did -d Clone 38 %I } Inc %I } } Did -ra Clone 25 $Sock(Clone.*,0) Did -ra Clone 24 $Iif($Clone.Conn,$Clone.Conn,0) } Alias Clone.Nick { Return $Sock($1).Mark } Alias Clone.Sock { Var %I = 1 While ($Sock(Clone.*,%I)) { If ($Sock(Clone.*,%I).Mark == $1) { Return $Sock(Clone.*,%I) } Inc %I } } Alias Clone.RandNick { Var %I = $Iif($1,$1,$Rand(3,12)), %J = 1 While (%J <= %I) { Var %C = $Rand(1,0), %N = %N $+ $Iif(%C == 1,$Rand(A,Z),$Rand(a,z)) | Inc %J } Return %N } Alias Clone.Conn.User { If ($Did(Clone,11).State == 1) { SockWrite -nt $1 USER $Lower($Clone.RandNick) "" "" : $+ $Iif($Did(Clone,85),$Did(Clone,85),$Clone.RandNick($Rand(20,70))) SockWrite -nt $1 NICK $Clone.RandNick } If ($Did(Clone,12).State == 1) { Var %N = $Gettok($Read($Did(Clone,14)),1,32) SockWrite -nt $1 USER $Lower(%N) "" "" : $+ $Iif($Did(Clone,85),$Did(Clone,85),%N) SockWrite -nt $1 NICK %N } If ($Did(Clone,13).State == 1) { SockWrite -nt $1 USER $Lower($Did(Clone,15)) "" "" : $+ $Iif($Did(Clone,85),$Did(Clone,85),$Did(Clone,15)) SockWrite -nt $1 NICK $Did(Clone,15) $+ $Clone.RandNick(2) } } Alias Clone.Go { If (!$Did(Clone,34,%Clone.List)) { Set %Clone.List 1 } :Again Var %R = $Rand(0,9999999) If ($Sock($+(Clone.,$Did(Clone,6),.,%R))) { Goto Again } If ($Did(Clone,6) == Normal) { SockOpen Clone.Normal. $+ %R $Did(Clone,2) $Did(Clone,4) } Else { SockOpen $+(Clone.,$Did(Clone,6),.,%R) $Did(Clone,34,%Clone.List) } Inc %Clone.List Did -ra Clone 25 $Sock(Clone.*,0) } Dialog -l Clone.IPs { Title "Connected IP Ports" Size -1 -1 254 360 Option Pixels Edit "", 1, 8 8 236 317, Read Multi Button &Refresh List, 2, 8 332 235 20 } On *:Dialog:Clone.IPs:Init:*: { Clone.IPs } On *:Dialog:Clone.IPs:SClick:2: { Clone.IPs } Alias Clone.IPs { If (!$Dialog(Clone.IPs)) { Dialog -md Clone.IPs Clone.IPs } Did -r Clone.IPs 1 Var %I = 1 While ($Sock(Clone.*,%I)) { If ($Sock(Clone.*,%I).Mark) && ($Sock(Clone.*,%I).Mark != 1) && (!$DidWM(Clone.IPs,1,$Sock(Clone.*,%I).IP $Sock(Clone.*,%I).Port)) { Did -i Clone.IPs 1 1 $Sock(Clone.*,%I).IP $Sock(Clone.*,%I).Port } Inc %I } }