dialog floodprot_ { title "Personal Flood Protection" size -1 -1 236 152 option dbu tab "Text", 1, 5 1 225 127 check "Trigger after", 174, 15 28 39 10, tab 1 edit "", 13, 55 28 26 10, tab 1 edit "", 15, 107 28 26 10, tab 1 edit "", 17, 177 28 26 10, tab 1 check "Inform me I am being flooded (recommended)", 19, 15 45 120 10, tab 1 check "inform lamer they are ignored", 20, 140 45 78 10, tab 1 text "lines in", 14, 82 30 23 8, tab 1 text "sec(s) ignore for", 16, 134 30 41 8, tab 1 text "sec(s)", 18, 205 30 16 8, tab 1 text "Ignore:", 24, 15 60 20 8, tab 1 check "private", 25, 37 59 27 10, tab 1 check "channel", 26, 67 59 31 10, tab 1 check "notice", 27, 100 59 25 10, tab 1 check "ctcp", 28, 129 59 22 10, tab 1 check "invite", 29, 156 59 25 10, tab 1 check "dcc", 30, 183 59 25 10, tab 1 check "Trigger after", 175, 15 92 39 10, tab 1 edit "", 31, 55 92 26 10, tab 1 text "lines in", 32, 82 94 23 8, tab 1 edit "", 33, 107 92 26 10, tab 1 edit "", 35, 177 92 26 10, tab 1 text "sec(s)", 36, 205 94 16 8, tab 1 check "Inform me I am being flooded (recommended)", 37, 15 107 120 10, tab 1 text "sec(s) ignore for", 176, 134 94 41 8, tab 1 tab "Notice", 2 check "Trigger after", 178, 15 28 39 10, tab 2 edit "", 38, 55 28 26 10, tab 2 edit "", 39, 107 28 26 10, tab 2 edit "", 40, 177 28 26 10, tab 2 check "Inform me I am being flooded (recommended)", 41, 15 45 120 10, tab 2 check "inform lamer they are ignored", 42, 140 45 78 10, tab 2 text "lines in", 43, 82 30 23 8, tab 2 text "sec(s) ignore for", 44, 134 30 41 8, tab 2 text "sec(s)", 45, 205 30 16 8, tab 2 text "Ignore:", 46, 15 60 20 8, tab 2 check "private", 47, 37 59 27 10, tab 2 check "channel", 48, 67 59 31 10, tab 2 check "notice", 49, 100 59 25 10, tab 2 check "ctcp", 50, 129 59 22 10, tab 2 check "invite", 51, 156 59 25 10, tab 2 check "dcc", 52, 183 59 25 10, tab 2 check "Trigger after", 182, 15 92 39 10, tab 2 edit "", 53, 55 92 26 10, tab 2 edit "", 56, 107 92 26 10, tab 2 edit "", 57, 177 92 26 10, tab 2 check "Inform me I am being flooded (recommended)", 59, 15 107 120 10, tab 2 text "sec(s)", 179, 205 94 16 8, tab 2 text "sec(s) ignore for", 180, 134 94 41 8, tab 2 text "lines in", 181, 82 94 23 8, tab 2 tab "CTCP", 3 check "Trigger after", 185, 15 28 39 10, tab 3 edit "", 60, 55 28 26 10, tab 3 edit "", 61, 107 28 26 10, tab 3 edit "", 62, 177 28 26 10, tab 3 check "Inform me I am being flooded (recommended)", 63, 15 45 120 10, tab 3 check "inform lamer they are ignored", 64, 140 45 78 10, tab 3 text "CTCPs in:", 65, 82 30 25 8, tab 3 text "Ignore:", 68, 15 60 20 8, tab 3 check "private", 69, 37 59 27 10, tab 3 check "channel", 70, 67 59 31 10, tab 3 check "notice", 71, 100 59 25 10, tab 3 check "ctcp", 72, 129 59 22 10, tab 3 check "invite", 73, 156 59 25 10, tab 3 check "dcc", 74, 183 59 25 10, tab 3 check "Trigger after", 188, 15 92 39 10, tab 3 edit "", 75, 55 92 26 10, tab 3 text "CTCPs in:", 76, 82 94 25 8, tab 3 edit "", 78, 107 92 26 10, tab 3 edit "", 79, 177 92 26 10, tab 3 check "Inform me I am being flooded (recommended)", 81, 15 107 120 10, tab 3 text "sec(s)", 183, 205 30 16 8, tab 3 text "sec(s) ignore for", 184, 134 30 41 8, tab 3 text "sec(s)", 186, 205 94 16 8, tab 3 text "sec(s) ignore for", 187, 134 94 41 8, tab 3 tab "Invite", 4 check "Trigger after", 193, 15 28 39 10, tab 4 edit "", 82, 55 28 26 10, tab 4 edit "", 83, 107 28 26 10, tab 4 edit "", 84, 177 28 26 10, tab 4 check "Inform me I am being flooded (recommended)", 85, 15 45 120 10, tab 4 check "inform lamer they are ignored", 86, 140 45 78 10, tab 4 text "invites in:", 87, 82 30 23 8, tab 4 text "Ignore:", 90, 15 60 20 8, tab 4 check "private", 91, 37 59 27 10, tab 4 check "channel", 92, 67 59 31 10, tab 4 check "notice", 93, 100 59 25 10, tab 4 check "ctcp", 94, 129 59 22 10, tab 4 check "invite", 95, 156 59 25 10, tab 4 check "dcc", 96, 183 59 25 10, tab 4 check "Trigger after", 194, 15 92 39 10, tab 4 edit "", 97, 55 92 26 10, tab 4 text "invites in:", 98, 82 94 23 8, tab 4 edit "", 100, 107 92 26 10, tab 4 edit "", 101, 177 92 26 10, tab 4 check "Inform me I am being flooded (recommended)", 103, 15 107 120 10, tab 4 text "sec(s)", 189, 205 30 16 8, tab 4 text "sec(s) ignore for", 191, 134 30 41 8, tab 4 text "sec(s) ignore for", 192, 134 94 41 8, tab 4 text "sec(s)", 190, 205 94 16 8, tab 4 tab "DCC", 5 check "Trigger after", 199, 15 28 39 10, tab 5 edit "", 104, 55 28 26 10, tab 5 edit "", 105, 107 28 26 10, tab 5 edit "", 106, 177 28 26 10, tab 5 check "Inform me I am being flooded (recommended)", 107, 15 45 120 10, tab 5 check "inform lamer they are ignored", 108, 140 45 78 10, tab 5 text "DCC's in:", 109, 82 30 23 8, tab 5 text "Ignore:", 112, 15 60 20 8, tab 5 check "private", 113, 37 59 27 10, tab 5 check "channel", 114, 67 59 31 10, tab 5 check "notice", 115, 100 59 25 10, tab 5 check "ctcp", 116, 129 59 22 10, tab 5 check "invite", 117, 156 59 25 10, tab 5 check "dcc", 118, 183 59 25 10, tab 5 check "Trigger after", 200, 15 92 39 10, tab 5 edit "", 119, 55 92 26 10, tab 5 text "DCC's in:", 120, 82 94 23 8, tab 5 edit "", 122, 107 92 26 10, tab 5 edit "", 123, 177 92 26 10, tab 5 check "Inform me I am being flooded (recommended)", 125, 15 107 120 10, tab 5 text "sec(s)", 195, 205 30 16 8, tab 5 text "sec(s)", 196, 205 94 16 8, tab 5 text "sec(s) ignore for", 198, 134 94 41 8, tab 5 text "sec(s) ignore for", 197, 134 30 41 8, tab 5 tab "Query", 6 check "Trigger after", 207, 15 28 39 10, tab 6 edit "", 126, 55 28 26 10, tab 6 edit "", 127, 107 28 26 10, tab 6 edit "", 128, 177 28 26 10, tab 6 check "Inform me I am being flooded (recommended)", 129, 15 45 120 10, tab 6 check "inform lamer they are ignored", 130, 140 45 78 10, tab 6 text "Ignore:", 134, 15 60 20 8, tab 6 check "private", 135, 37 59 27 10, tab 6 check "channel", 136, 67 59 31 10, tab 6 check "notice", 137, 100 59 25 10, tab 6 check "ctcp", 138, 129 59 22 10, tab 6 check "invite", 139, 156 59 25 10, tab 6 check "dcc", 140, 183 59 25 10, tab 6 check "Close any open query window with nick", 141, 15 70 106 10, tab 6 check "Trigger after", 208, 15 92 39 10, tab 6 edit "", 142, 55 92 26 10, tab 6 edit "", 145, 107 92 26 10, tab 6 edit "", 146, 177 92 26 10, tab 6 check "Inform me I am being flooded (recommended)", 148, 15 107 120 10, tab 6 check "Close all query windows", 149, 138 107 74 10, tab 6 text "sec(s)", 201, 205 30 16 8, tab 6 text "sec(s)", 202, 205 94 16 8, tab 6 text "sec(s) ignore for", 203, 134 30 41 8, tab 6 text "sec(s) ignore for", 204, 136 94 41 8, tab 6 text "lines in", 205, 82 30 23 8, tab 6 text "lines in", 206, 82 94 23 8, tab 6 tab "DCC Chat", 7 check "Trigger after", 212, 15 28 39 10, tab 7 edit "", 150, 55 28 26 10, tab 7 edit "", 151, 107 28 26 10, tab 7 edit "", 152, 177 28 26 10, tab 7 check "Inform me I am being flooded (recommended)", 153, 15 45 120 10, tab 7 check "inform lamer they are ignored", 154, 140 45 78 10, tab 7 text "Ignore:", 158, 15 60 20 8, tab 7 check "private", 159, 37 59 27 10, tab 7 check "channel", 160, 67 59 31 10, tab 7 check "notice", 161, 100 59 25 10, tab 7 check "ctcp", 162, 129 59 22 10, tab 7 check "invite", 163, 156 59 25 10, tab 7 check "dcc", 164, 183 59 25 10, tab 7 check "Close any open chat window with nick", 165, 15 70 106 10, tab 7 text "I have yet to see a successful botnet flood via DCC chat so I will not include any options for this type of flood. Enjoy the pretty white space. ;)", 12, 15 92 177 16, tab 7 text "sec(s)", 209, 205 30 16 8, tab 7 text "sec(s) ignore for", 210, 134 30 41 8, tab 7 text "lines in", 211, 82 30 23 8, tab 7 tab "Help", 23 text "Everything is pretty much self explanatory but here are a few things to note:", 166, 15 29 201 8, tab 23 text "3. Any questions or comments email:", 172, 15 113 87 8, tab 23 link "moonman@oh-snap.org", 173, 103 113 62 8, tab 23 text "1. The mask is the ignore mask for all types of user floods", 213, 15 40 201 8, tab 23 text "2. The Default button resets all settings to their original values (you must click the apply button afterward to save the changes)", 214, 15 51 201 16, tab 23 text "3. For new settings to take place, you must click the apply button", 215, 15 70 201 8, tab 23 text "1. Ignore types for botnet floods are hard coded", 216, 15 91 201 8, tab 23 text "2. Read the README file that came with the addon!", 217, 15 102 201 8, tab 23 box "User", 10, 11 19 214 66 box "Botnet", 11, 11 81 214 43 text "Mask:", 21, 5 139 15 8 combo 22, 20 137 86 53, size drop button "&Defaults", 177, 109 136 37 12 button "&Apply", 8, 152 136 37 12, ok button "&Cancel", 9, 195 136 37 12, cancel } ; down and dirty dialog work... alias floodprot dialog $iif($dialog(floodprot_),-v,-m) floodprot_ floodprot_ on *:dialog:floodprot_:*:*:{ ; initialization commands if ($devent == init) { ; ignore mask did -ca $dname 22 $chr(91) $+ $readini($fp,address,mask) $+ $chr(93) $mask(nick!user@host.domain.com,$readini($fp,address,mask)) var %m.m = 0 | while (%m.m <= 9) { did -ka $dname 22 $+($chr(91),%m.m,$chr(93)) $mask(nick!user@host.domain.com,%m.m) | inc %m.m } ; text options a 13 $readini($fp,text,lines) a 15 $readini($fp,text,seconds) a 17 $readini($fp,text,ignoretime) did $iif($readini($fp,text,inform),-c,-u) $dname 19 did $iif($readini($fp,text,informlamer),-c,-u) $dname 20 var %t.i = $readini($fp,text,ignore) did $iif(p isin %t.i,-c,-u) $dname 25 | did $iif(c isin %t.i,-c,-u) $dname 26 | did $iif(n isin %t.i,-c,-u) $dname 27 did $iif(t isin %t.i,-c,-u) $dname 28 | did $iif(i isin %t.i,-c,-u) $dname 29 | did $iif(d isin %t.i,-c,-u) $dname 30 a 31 $readini($fp,botnettext,lines) a 33 $readini($fp,botnettext,seconds) a 35 $readini($fp,botnettext,ignoretime) did $iif($readini($fp,botnettext,inform),-c,-u) $dname 37 ; notice a 38 $readini($fp,notice,lines) a 39 $readini($fp,notice,seconds) a 40 $readini($fp,notice,ignoretime) did $iif($readini($fp,notice,inform),-c,-u) $dname 41 did $iif($readini($fp,notice,informlamer),-c,-u) $dname 42 var %n.i = $readini($fp,notice,ignore) did $iif(p isin %n.i,-c,-u) $dname 47 | did $iif(c isin %n.i,-c,-u) $dname 48 | did $iif(n isin %n.i,-c,-u) $dname 49 did $iif(t isin %n.i,-c,-u) $dname 50 | did $iif(i isin %n.i,-c,-u) $dname 51 | did $iif(d isin %n.i,-c,-u) $dname 52 a 53 $readini($fp,botnetnotice,lines) a 56 $readini($fp,botnetnotice,seconds) a 57 $readini($fp,botnetnotice,ignoretime) did $iif($readini($fp,botnetnotice,inform),-c,-u) $dname 59 ; ctcp a 60 $readini($fp,ctcp,lines) a 61 $readini($fp,ctcp,seconds) a 62 $readini($fp,ctcp,ignoretime) did $iif($readini($fp,ctcp,inform),-c,-u) $dname 63 did $iif($readini($fp,ctcp,informlamer),-c,-u) $dname 64 var %ctcp.i = $readini($fp,ctcp,ignore) did $iif(p isin %ctcp.i,-c,-u) $dname 69 | did $iif(c isin %ctcp.i,-c,-u) $dname 70 | did $iif(n isin %ctcp.i,-c,-u) $dname 71 did $iif(t isin %ctcp.i,-c,-u) $dname 72 | did $iif(i isin %ctcp.i,-c,-u) $dname 73 | did $iif(d isin %ctcp.i,-c,-u) $dname 74 a 75 $readini($fp,botnetctcp,lines) a 78 $readini($fp,botnetctcp,seconds) a 79 $readini($fp,botnetctcp,ignoretime) did $iif($readini($fp,botnetctcp,inform),-c,-u) $dname 81 ; invite a 82 $readini($fp,invite,lines) a 83 $readini($fp,invite,seconds) a 84 $readini($fp,invite,ignoretime) did $iif($readini($fp,invite,inform),-c,-u) $dname 85 did $iif($readini($fp,invite,informlamer),-c,-u) $dname 86 var %invite.i = $readini($fp,invite,ignore) did $iif(p isin %invite.i,-c,-u) $dname 91 | did $iif(c isin %invite.i,-c,-u) $dname 92 | did $iif(n isin %invite.i,-c,-u) $dname 93 did $iif(t isin %invite.i,-c,-u) $dname 94 | did $iif(i isin %invite.i,-c,-u) $dname 95 | did $iif(d isin %invite.i,-c,-u) $dname 96 a 97 $readini($fp,botnetinvite,lines) a 100 $readini($fp,botnetinvite,seconds) a 101 $readini($fp,botnetinvite,ignoretime) did $iif($readini($fp,botnetinvite,inform),-c,-u) $dname 103 ; dcc a 104 $readini($fp,dcc,lines) a 105 $readini($fp,dcc,seconds) a 106 $readini($fp,dcc,ignoretime) did $iif($readini($fp,dcc,inform),-c,-u) $dname 107 did $iif($readini($fp,dcc,informlamer),-c,-u) $dname 108 var %dcc.i = $readini($fp,dcc,ignore) did $iif(p isin %dcc.i,-c,-u) $dname 113 | did $iif(c isin %dcc.i,-c,-u) $dname 114 | did $iif(n isin %dcc.i,-c,-u) $dname 115 did $iif(t isin %dcc.i,-c,-u) $dname 116 | did $iif(i isin %dcc.i,-c,-u) $dname 117 | did $iif(d isin %dcc.i,-c,-u) $dname 118 a 119 $readini($fp,botnetdcc,lines) a 122 $readini($fp,botnetdcc,seconds) a 123 $readini($fp,botnetdcc,ignoretime) did $iif($readini($fp,botnetdcc,inform),-c,-u) $dname 125 ; query a 126 $readini($fp,query,lines) a 127 $readini($fp,query,seconds) a 128 $readini($fp,query,ignoretime) did $iif($readini($fp,query,inform),-c,-u) $dname 129 did $iif($readini($fp,query,informlamer),-c,-u) $dname 130 var %query.i = $readini($fp,query,ignore) did $iif(p isin %query.i,-c,-u) $dname 135 | did $iif(c isin %query.i,-c,-u) $dname 136 | did $iif(n isin %query.i,-c,-u) $dname 137 did $iif(t isin %query.i,-c,-u) $dname 138 | did $iif(i isin %query.i,-c,-u) $dname 139 | did $iif(d isin %query.i,-c,-u) $dname 140 did $iif($readini($fp,query,closequery),-c,-u) $dname 141 a 142 $readini($fp,botnetquery,lines) a 145 $readini($fp,botnetquery,seconds) a 146 $readini($fp,botnetquery,ignoretime) did $iif($readini($fp,botnetquery,inform),-c,-u) $dname 148 did $iif($readini($fp,botnetquery,closequery),-c,-u) $dname 149 ; dcc chat a 150 $readini($fp,chat,lines) a 151 $readini($fp,chat,seconds) a 152 $readini($fp,chat,ignoretime) did $iif($readini($fp,chat,inform),-c,-u) $dname 153 did $iif($readini($fp,chat,informlamer),-c,-u) $dname 154 var %chat.i = $readini($fp,chat,ignore) did $iif(p isin %chat.i,-c,-u) $dname 159 | did $iif(c isin %chat.i,-c,-u) $dname 160 | did $iif(n isin %chat.i,-c,-u) $dname 161 did $iif(t isin %chat.i,-c,-u) $dname 162 | did $iif(i isin %chat.i,-c,-u) $dname 163 | did $iif(d isin %chat.i,-c,-u) $dname 164 did $iif($readini($fp,chat,closechat),-c,-u) $dname 165 ; enabled/disabled checks e text 174 | e notice 178 | e ctcp 185 | e invite 193 | e dcc 199 | e query 207 | e chat 212 e botnettext 175 | e botnetnotice 182 | e botnetctcp 188 | e botnetinvite 194 | e botnetdcc 200 | e botnetquery 208 ; whats enabled did $iif($did(174).state == 1,-e,-b) $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30 did $iif($did(175).state == 1,-e,-b) $dname 31,32,33,35,36,176,37 did $iif($did(178).state == 1,-e,-b) $dname 38,43,39,44,40,45,41,42,46,47,48,49,50,51,52 did $iif($did(182).state == 1,-e,-b) $dname 53,181,56,180,57,179,59 did $iif($did(185).state == 1,-e,-b) $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74 did $iif($did(188).state == 1,-e,-b) $dname 75,76,78,187,79,186,81 did $iif($did(193).state == 1,-e,-b) $dname 82,87,83,191,84,189,85,86,90,91,92,93,94,95,96 did $iif($did(194).state == 1,-e,-b) $dname 97,98,100,192,101,190,103 did $iif($did(199).state == 1,-e,-b) $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118 did $iif($did(200).state == 1,-e,-b) $dname 119,120,122,198,123,196,125 did $iif($did(207).state == 1,-e,-b) $dname 126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141 did $iif($did(208).state == 1,-e,-b) $dname 142,206,145,204,146,202,148,149 did $iif($did(212).state == 1,-e,-b) $dname 150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165 } if ($devent == sclick) { ; email link if ($did == 173) .run "mailto:moonman@oh-snap.org?subject=Flood protection addon" ; trigger checkboxes if ($did == 174) did $iif($did(174).state == 1,-e,-b) $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30 if ($did == 175) did $iif($did(175).state == 1,-e,-b) $dname 31,32,33,35,36,176,37 if ($did == 178) did $iif($did(178).state == 1,-e,-b) $dname 38,43,39,44,40,45,41,42,46,47,48,49,50,51,52 if ($did == 182) did $iif($did(182).state == 1,-e,-b) $dname 53,181,56,180,57,179,59 if ($did == 185) did $iif($did(185).state == 1,-e,-b) $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74 if ($did == 188) did $iif($did(188).state == 1,-e,-b) $dname 75,76,78,187,79,186,81 if ($did == 193) did $iif($did(193).state == 1,-e,-b) $dname 82,87,83,191,84,189,85,86,90,91,92,93,94,95,96 if ($did == 194) did $iif($did(194).state == 1,-e,-b) $dname 97,98,100,192,101,190,103 if ($did == 199) did $iif($did(199).state == 1,-e,-b) $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118 if ($did == 200) did $iif($did(200).state == 1,-e,-b) $dname 119,120,122,198,123,196,125 if ($did == 207) did $iif($did(207).state == 1,-e,-b) $dname 126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141 if ($did == 208) did $iif($did(208).state == 1,-e,-b) $dname 142,206,145,204,146,202,148,149 if ($did == 212) did $iif($did(212).state == 1,-e,-b) $dname 150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165 ; default button if ($did == 177) { did -co $dname 22 1 [2] *!*@host.domain.com e text 174 | e notice 178 | e ctcp 185 | e invite 193 | e dcc 199 | e query 207 | e chat 212 e botnettext 175 | e botnetnotice 182 | e botnetctcp 188 | e botnetinvite 194 | e botnetdcc 200 | e botnetquery 208 var %tk = 12.10.30.25.10.30.5.10.30.10.10.30.5.10.30.8.10.30.5.10.30.8.10.30.5.10.30.8.10.30.12.10.30.25.10.30.50.10.30 var %tk2 = 13.15.17.31.33.35.38.39.40.53.56.57.60.61.62.75.78.79.82.83.84.97.100.101.104.105.106.119.122.123.126.127.128.142.145.146.150.151.152 var %cnt = 1 while ($gettok(%tk2,%cnt,46)) { did -ra $dname $ifmatch $gettok(%tk,%cnt,46) | inc %cnt } did -c $dname 26,49,72,95,115,118,135,164,19,37,41,59,63,81,85,103,107,125,129,141,148,149,153,165,174,175,178,182,185,188,193,194,199,200,207,208,212 did -u $dname 25,27,28,29,30,47,48,50,51,52,69,70,71,73,74,91,92,93,94,96,113,114,116,117,136,137,138,139,140,159,160,161,162,163,20,42,64,86,108,130,154 did -e $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30,31,32,33,35,36,176,37,38,43,39,44,40,45,41,42,46,47,48,49,50,51,52,53,181,56,180,57,179,59 did -e $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74,75,76,78,187,79,186,81,82,87,83,191,84,189,85,86,90,91,92,93,94,95,96,97,98,100,192,101,190,103 did -e $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118,119,120,122,198,123,196,125,126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141 did -e $dname 142,206,145,204,146,202,148,149,150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165 } ; hold on to your testicles, cause here comes the big ol' ok button if ($did == 8) { f address mask $remove($gettok($did(22),1,32),$chr(91),$chr(93)) f text enabled $iif($did(174).state == 1,$true,$false) f notice enabled $iif($did(178).state == 1,$true,$false) f ctcp enabled $iif($did(185).state == 1,$true,$false) f invite enabled $iif($did(193).state == 1,$true,$false) f dcc enabled $iif($did(199).state == 1,$true,$false) f query enabled $iif($did(207).state == 1,$true,$false) f chat enabled $iif($did(212).state == 1,$true,$false) f botnettext enabled $iif($did(175).state == 1,$true,$false) f botnetnotice enabled $iif($did(182).state == 1,$true,$false) f botnetctcp enabled $iif($did(188).state == 1,$true,$false) f botnetinvite enabled $iif($did(194).state == 1,$true,$false) f botnetdcc enabled $iif($did(200).state == 1,$true,$false) f botnetquery enabled $iif($did(208).state == 1,$true,$false) f text lines $did(13) | f text seconds $did(15) | f text ignoretime $did(17) f text inform $iif($did(19).state == 1,$true,$false) | f text informlamer $iif($did(20).state == 1,$true,$false) var %g if ($did(25).state == 1) %g = p if ($did(26).state == 1) %g = %g $+ c if ($did(27).state == 1) %g = %g $+ n if ($did(28).state == 1) %g = %g $+ t if ($did(29).state == 1) %g = %g $+ i if ($did(30).state == 1) %g = %g $+ d f text ignore $iif(%g,%g,$false) f notice lines $did(38) | f notice seconds $did(39) | f notice ignoretime $did(40) f notice inform $iif($did(41).state == 1,$true,$false) | f notice informlamer $iif($did(42).state == 1,$true,$false) var %g if ($did(47).state == 1) %g = p if ($did(48).state == 1) %g = %g $+ c if ($did(49).state == 1) %g = %g $+ n if ($did(50).state == 1) %g = %g $+ t if ($did(51).state == 1) %g = %g $+ i if ($did(52).state == 1) %g = %g $+ d f notice ignore $iif(%g,%g,$false) f ctcp lines $did(60) | f ctcp seconds $did(61) | f ctcp ignoretime $did(62) f ctcp inform $iif($did(63).state == 1,$true,$false) | f ctcp informlamer $iif($did(64).state == 1,$true,$false) var %g if ($did(69).state == 1) %g = p if ($did(70).state == 1) %g = %g $+ c if ($did(71).state == 1) %g = %g $+ n if ($did(72).state == 1) %g = %g $+ t if ($did(73).state == 1) %g = %g $+ i if ($did(74).state == 1) %g = %g $+ d f ctcp ignore $iif(%g,%g,$false) f invite lines $did(82) | f invite seconds $did(83) | f invite ignoretime $did(84) f invite inform $iif($did(85).state == 1,$true,$false) | f invite informlamer $iif($did(86).state == 1,$true,$false) var %g if ($did(91).state == 1) %g = p if ($did(92).state == 1) %g = %g $+ c if ($did(93).state == 1) %g = %g $+ n if ($did(94).state == 1) %g = %g $+ t if ($did(95).state == 1) %g = %g $+ i if ($did(96).state == 1) %g = %g $+ d f invite ignore $iif(%g,%g,$false) f dcc lines $did(104) | f dcc seconds $did(105) | f dcc ignoretime $did(106) f dcc inform $iif($did(107).state == 1,$true,$false) | f dcc informlamer $iif($did(108).state == 1,$true,$false) var %g if ($did(113).state == 1) %g = p if ($did(114).state == 1) %g = %g $+ c if ($did(115).state == 1) %g = %g $+ n if ($did(116).state == 1) %g = %g $+ t if ($did(117).state == 1) %g = %g $+ i if ($did(118).state == 1) %g = %g $+ d f dcc ignore $iif(%g,%g,$false) f query lines $did(126) | f query seconds $did(127) | f query ignoretime $did(128) f query inform $iif($did(129).state == 1,$true,$false) | f query informlamer $iif($did(130).state == 1,$true,$false) var %g if ($did(135).state == 1) %g = p if ($did(136).state == 1) %g = %g $+ c if ($did(137).state == 1) %g = %g $+ n if ($did(138).state == 1) %g = %g $+ t if ($did(139).state == 1) %g = %g $+ i if ($did(140).state == 1) %g = %g $+ d f query ignore $iif(%g,%g,$false) f query closequery $iif($did(141).state == 1,$true,$false) f chat lines $did(150) | f chat seconds $did(151) | f chat ignoretime $did(152) f chat inform $iif($did(153).state == 1,$true,$false) | f chat informlamer $iif($did(154).state == 1,$true,$false) var %g if ($did(159).state == 1) %g = p if ($did(160).state == 1) %g = %g $+ c if ($did(161).state == 1) %g = %g $+ n if ($did(162).state == 1) %g = %g $+ t if ($did(163).state == 1) %g = %g $+ i if ($did(164).state == 1) %g = %g $+ d f chat ignore $iif(%g,%g,$false) | f chat closechat $iif($did(165).state == 1,$true,$false) f botnettext lines $did(31) | f botnettext seconds $did(33) f botnettext ignoretime $did(35) | f botnettext inform $iif($did(37).state == 1,$true,$false) f botnetnotice lines $did(53) | f botnetnotice seconds $did(56) f botnetnotice ignoretime $did(57) | f botnetnotice inform $iif($did(59).state == 1,$true,$false) f botnetctcp lines $did(75) | f botnetctcp seconds $did(78) f botnetctcp ignoretime $did(79) | f botnetctcp inform $iif($did(81).state == 1,$true,$false) f botnetinvite lines $did(97) | f botnetinvite seconds $did(100) f botnetinvite ignoretime $did(101) | f botnetinvite inform $iif($did(103).state == 1,$true,$false) f botnetdcc lines $did(119) | f botnetdcc seconds $did(122) f botnetdcc ignoretime $did(123) | f botnetdcc inform $iif($did(125).state == 1,$true,$false) f botnetquery lines $did(142) | f botnetquery seconds $did(145) f botnetquery ignoretime $did(146) | f botnetquery inform $iif($did(148).state == 1,$true,$false) f botnetquery closequery $iif($did(149).state == 1,$true,$false) } } } ; space saver local aliases alias -l f .writeini $fp $1- alias -l a did -a $dname $1- alias -l d did -o $dname $1- alias -l u did $+(-,$iif($did($did).state == 1,u,c),o) $dname $did $1 alias -l v did $+(-,$iif($did($1).state == 1,u,c),o) $dname $1 $2 alias -l e did $iif($readini($fp,$1,enabled),-c,-u) $dname $2 alias -l fp return $+(",$scriptdirprotection.ini,")