mIRC Homepage
Posted By: NoPleX kick users !11 & !10 - 07/06/04 12:08 AM
Can anyone tell me whats wrong with this script? Its supose to kick and ban anyone who idles on channel and is not level 11 or 10 in remote.ini!!!!


on me:*:JOIN:#channel: .timer 0 5 CheckIdlers

alias CheckIdlers {
if ($ulevel != 10) || ($ulevel != 11) {
if ($nick(%chan,%a,r).idle > 20) { ban -ku300 %chan $nick(%chan,%a,r) 2 ยง5 Please do not idle. Return in a while if you need help or want to help }
dec %a
}
}
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 01:17 AM
You didn't set a value for %chan or %a such as... var %a = $nick(%chan,0)
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 02:01 AM
sorry dont know what you mean where should i put it?
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 02:17 AM
I also just noticed that you didn't add a kick event either.
Code:
alias CheckIdlers {
  [color:blue]var %chan = #YourChannel, %a = $nick(%chan,0) [/color] 
  while %a {
    if ($ulevel != 10) || ($ulevel != 11) {
      if ($nick(%chan,%a,r).idle > 20) { 
        ban -ku300 %chan $nick(%chan,%a,r) 2 [color:blue]| kick %chan $nick(%chan,%a,r)[/color] Please do not idle. Return in a while if you need help or want to help 
      }
    }
    dec %a
  } 
}   

Posted By: CtrlAltDel Re: kick users !11 & !10 - 07/06/04 03:51 AM
Quote:
ban -ku300 %chan $nick(%chan,%a,r) 2

the kick is there grin
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 04:21 AM
Ah yes, completely over looked it :tongue:
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 12:51 PM
well thanks smile But the script doesnt work confused


on me:*:JOIN:#channel: .timer 0 5 CheckIdlers

alias CheckIdlers {
var %chan = #channel %a = $nick(%chan,0)
while %a {
if ($ulevel != 10) || ($ulevel != 11) {
if ($nick(%chan,%a,r).idle > 20) {
ban -ku300 %chan $nick(%chan,%a,r) 2 Please do not idle. Return in a while if you need help or want to help
}
}
dec %a
}
}
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 02:22 PM
When you declare more than one variable on the same line they need to be seperated by a comma.

var %chan = #channel, %a = $nick(%chan,0)

Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 04:20 PM
now the script almost works! But it still kicks level 10 & 11 users if thay dont have voice or op! The script is supose to kick and ban anyone who idle who is not level 11 or 10 user!
Posted By: xxxYODAxxx Re: kick users !11 & !10 - 07/06/04 04:42 PM
if ($ulevel < 10) || ($ulevel > 11) {

try that

-cheers
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 05:23 PM
hmm Sorry Yoda but it still doesnt work confused confused
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 05:25 PM
I'm assuming wink that you've already added users with "auser" or "guser" to your userlist.
The example below is based on users added to the userlist with type 2 (*!*@host). It was not tested.
Code:
alias CheckIdlers {
  var %chan = #YourChannel, %a = $nick(%chan,0)  
  while %a {
    var %nick = $address($nick(%chan,%a,r),[color:blue]2[/color])
    if (!$ulist(%nick,10,1) || !$ulist(%nick,11,1)) {
      if ($nick(%chan,%a,r).idle &gt; 20) { 
        ban -ku300 %chan $nick(%chan,%a,r) 2 Please do not idle. Return in a while if you need help or want to help
      }
    }
    dec %a
  } 
}   
 
Posted By: xxxYODAxxx Re: kick users !11 & !10 - 07/06/04 05:31 PM
hehe, I should read the code a lil closer before posting. what Naz posted should work for ya. sorry. smile
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 05:34 PM
Still doesnt work as its supose to im sorry frown


Lets just start from the beginning and forget the script we have been working on...... I want the script to kick and ban ALL who isnt level 10 or 11 on the channel even if thay are opped.... BUT.. If a level 10 or 11 join its not supose to kick and ban them no mater what..... Do you understand?
Posted By: Naz Re: kick users !11 & !10 - 07/06/04 06:09 PM
Ok, it had appeard you only wanted to k/b regular users.

$nick(%chan,%a,r) is only going to act on "regular" users, meaning not voiced or opped. If you want it to include everybody just make that identifier $nick(%chan,%a)

Also, again make sure that the users are added to the userlist and that you are checking for the same type of hostmask here --> $address($nick(%chan,%a),2)

The alias looks fine. If it doesn't work after changing that identifier, place an echo -a statement after every line that should return something (one line at a time to avoid confusion). That will make the alias echo back to you the info it is getting which will help you see where it it breaking.

For instance, under this line.... var %nick = $address($nick(%chan,%a),2)
put this line.... echo -a %nick
That would echo back the the var %nick for every nick it checks. If it didn't echo anything then you would know the var wasn't being set correctly. (Just an example) It's easier to fix when you know where it is breaking.
Posted By: Zyzzyx26 Re: kick users !11 & !10 - 07/06/04 06:18 PM
Code:
alias CheckIdlers {
 var %chan = [color:red]$1[/color], %a = $nick(%chan,0)
 while %a {
  if ($ulevel != 10) || ($ulevel != 11) {
   if ($nick(%chan,%a).idle &gt; 20) {
    ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
  }
 }
dec %a
 }
}
This should work. Note that the usage of the alias is /checkidlers #channel, so $1 is the identifier for the channel name in that alias. The var %chan has to be set to $1 then.

Hope this works!

Zyzzy. smile
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 07:06 PM
hmm if i use this script nothing hapents:

on me:*:JOIN:#needhelp: .timer 0 5 CheckIdlers

alias CheckIdlers {
var %chan = $1, %a = $nick(%chan,0)
while %a {
if ($ulevel != 10) || ($ulevel != 11) {
if ($nick(%chan,%a).idle > 20) {
ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
}
}
dec %a
}
}


And if i use this one, it kicks and bans everyone also level 10 & 11 users:


on me:*:JOIN:#needhelp: .timer 0 5 CheckIdlers

alias CheckIdlers {
var %chan = #needhelp, %a = $nick(%chan,0)
while %a {
if ($ulevel != 10) || ($ulevel != 11) {
if ($nick(%chan,%a).idle > 20) {
ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
}
}
dec %a
}
}



confused confused confused
Posted By: CtrlAltDel Re: kick users !11 & !10 - 07/06/04 07:18 PM
try this:

Code:
 alias CheckIdlers {
  var %chan = #needhelp, %a = $nick(%chan,0)
  while %a {
    if ($ulevel[color:red] ==[/color] 10) || ($ulevel [color:red]==[/color] 11)  [color:red]{ return } [/color] 
    if ($nick(%chan,%a,r).idle &gt; 20) {  
      ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
    }
dec %a
  }
}
 
Posted By: xxxYODAxxx Re: kick users !11 & !10 - 07/06/04 07:18 PM
this dont look right:
if ($ulevel != 10) || ($ulevel != 11) {
if ($ulevel != 10) or ($ulevel != 11) {
will ban some one level 10 or 11 since it will check both.
try:
if ($ulevel < 10) || ($ulevel > 11) {

on the second code set.

Ps. fire us we stink! if it still dont work after you try the above posts, ill test before my next post.. hehe.

-cheers


Posted By: Zyzzyx26 Re: kick users !11 & !10 - 07/06/04 07:22 PM
on me:*:JOIN:#needhelp: .timer 0 5 CheckIdlers $chan

Without the channel, the script will run with the channel parameters, which is crucial. If you specify the channel (in this case, $chan) then the $1 will be filled.

Hmm.. i think that doing that alias every 5 seconds might slow you down a bit (of course i don't know you computer's RAM so im saying compared to mine :P)

Hope this helps,
Zyzzy
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 07:40 PM
The script still kicks and ban users with level 10 or 11!!!!

alias CheckIdlers {
var %chan = #needhelp, %a = $nick(%chan,0)
while %a {
if ($ulevel != 10) || ($ulevel != 11) {
if ($nick(%chan,%a).idle > 20) {
ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
}
}
dec %a
}
}
Posted By: Zyzzyx26 Re: kick users !11 & !10 - 07/06/04 07:46 PM
Try what CtrlAltDel suggested smile

if ($ulevel == 10) || ($ulevel == 11) { return }

instead of:

if ($ulevel != 10) || ($ulevel != 11) {

Also make sure that the mask in your user list matches the IP of the levels 11 & 10
Posted By: Iori Re: kick users !11 & !10 - 07/06/04 08:58 PM
$ulevel
Returns the user level that was matched for the currently triggered event.

The matching level when you trigger an event is your own level.

Also:
When you join a channel, mIRC knows of only one user on that channel, you. You have to wait until the names list is sent (raw 366 is the end of /names list) to know of other users on that channel, and you can't tell their user level until you have them in your IAL.
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 09:52 PM
alias CheckIdlers {
var %chan = #needhelp, %a = $nick(%chan,0)
while %a {
if ($ulevel == 10) || ($ulevel == 11) { return }
if ($nick(%chan,%a).idle > 20) {
ban -ku300 %chan $nick(%chan,%a) 2 Please do not idle. Return in a while if you need help or want to help
}
}
dec %a
}
}



doesnt work! It chrashes mirc totaly :S

But i still dont know what will make it work confused
Posted By: Iori Re: kick users !11 & !10 - 07/06/04 10:04 PM
Well as I tried to explain .. using $ulevel can't work.
That alias would be freezing rather than crashing miRC. You have bracket mismatches and the /dec is outside the while { }....


Edit: Try this...
Code:
on me:*:join:#needhelp:inc %who. $+ # | who #
raw 315:*:{
  if %who. [ $+ [ $2 ] ] {
    unset %who. $+ $2
    .timer 0 60 check.idlers $2
    halt
  }
}
alias check.idlers {
  if $chan($$1).ial != $true { echo -ec i $1 IAL is not full for $1 | return }
  if $me !isop $1 { echo -ec i $1 You are not opped on $1! | return }
  var %i = 1
  while $nick($1,%i,r) {
    %a = $ifmatch
    if !$istok(10 11,$level($ial(%a)),32) &amp;&amp; $nick($1,%a).idle &gt; 20 {
      ban -ku300 $1 %a 2 Please do not idle. Return in a while if you need help or want to help.
    }
    inc %i
  }
}
raw 352:*:if %who. [ $+ [ $2 ] ] { halt }

To use it as an /alias you must specify the #channelname.. /check.idlers #needhelp

Edit again: Added check for your op status.
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 10:07 PM
Ok so the script is imposible to make? You cant make it do anything on a user level?
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 10:34 PM
ok so you want me to put #needhelp here:

alias check.idlers #needhelp { if $chan($$1).ial != $true { echo -ec i $1 IAL is not full for $1 | return }


cause if thats what you ment that doesnt work!
Posted By: Iori Re: kick users !11 & !10 - 07/06/04 10:43 PM
Nope. You don't need to put anything there, and what I posted is NOT one line, and will NOT work if you try and use it as such. you need to have it formatted as the 20 or so lines that it is in my post.
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 10:59 PM
on me:*:join:#needhelp:inc %who. $+ # | who #
raw 315:*:{
if %who. [ $+ [ $2 ] ] {
unset %who. $+ $2
check.idlers $2
halt
}
}

alias check.idlers {
if $chan($$1).ial != $true { echo -ec i $1 IAL is not full for $1 | return }
var %i = 1 while $nick($1,%i,r) {
%a = $ifmatch
if !$istok(10 11,$level($ial(%a)),32) && $nick($1,%a).idle > 20 {
ban -ku300 $1 %a 2 Please do not idle. Return in a while if you need help or want to help.
}
inc %i
}
}
raw 352:*:if %who. [ $+ [ $2 ] ] { halt }



nothing hapends confused
Posted By: Iori Re: kick users !11 & !10 - 07/06/04 11:18 PM
Yeah change this part, sorry blush This will check every 60 secs from when you join (from when the who list is finished).
Code:
raw 315:*:{
  if %who. [ $+ [ $2 ] ] {
    unset %who. $+ $2
    [color:blue].timer 0 60[/color] check.idlers $2
    halt
  }
}

Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 11:40 PM
oh no wonder it didnt work :P

Well nobody is perfect wink
Posted By: NoPleX Re: kick users !11 & !10 - 07/06/04 11:46 PM
on me:*:join:#needhelp:inc %who. $+ # | who #
raw 315:*:{
if %who. [ $+ [ $2 ] ] {
unset %who. $+ $2
timer 0 5 check.idlers $2
halt
}
}

alias check.idlers {
if $chan($$1).ial != $true { echo -ec i $1 IAL is not full for $1 | return }
var %i = 1 while $nick($1,%i,r) {
%a = $ifmatch
if !$istok(10 11,$level($ial(%a)),32) && $nick($1,%a).idle > 20 {
ban -ku300 $1 %a 2 Please do not idle. Return in a while if you need help or want to help.
}
inc %i
}
}
raw 352:*:if %who. [ $+ [ $2 ] ] { halt }



Sill nothing hapends :S no kick no ban no nothing confused
Posted By: Iori Re: kick users !11 & !10 - 07/06/04 11:48 PM
var %i = 1 while $nick($1,%i,r) {
should be
  • var %i = 1
    while $nick($1,%i,r) {
Posted By: NoPleX Re: kick users !11 & !10 - 08/06/04 12:04 AM
oh my bad :S


YES NOW THE SCRIPT WORKS laugh laugh laugh laugh laugh

I made a change so ops and voiced who aint level 10 & 11 also will get kicked and banned

on me:*:join:#needhelp:inc %who. $+ # | who #
raw 315:*:{
if %who. [ $+ [ $2 ] ] {
unset %who. $+ $2
timer 0 5 check.idlers $2
halt
}
}

alias check.idlers {
if $chan($$1).ial != $true { echo -ec i $1 IAL is not full for $1 | return }
var %i = 1
while $nick($1,%i) {
%a = $ifmatch
if !$istok(10 11,$level($ial(%a)),32) && $nick($1,%a).idle > 20 {
ban -ku300 $1 %a 2 Please do not idle. Return in a while if you need help or want to help.
}
inc %i
}
}
raw 352:*:if %who. [ $+ [ $2 ] ] { halt }




Thanks alot for your great help. Your worth 5 stars wink

And sorry for all the troble!

- NoPleX
© mIRC Discussion Forums