mIRC Home    About    Download    Register    News    Help

Print Thread
Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
Firstly, I put this script into my remotes..it worked, but it messed up some aspects of mirc/irc...for instance when somebody joined, parted or quit a channel I was in, I couldn't see the join,part or quit message. They simply just disappeared from the user list, my nick alert wouldn't work, and my auto identify wouldn't work. Once I removed the revenge kick script....all those things worked again. What is within this script that would prevent those things from working?

Quote:
on 1:KICK:#: {
if ($knick == $me) {
timer 1 3 { mode $chan -Qo+bb $nick $wildsite $address($nick,3) | kick $chan $nick $isset($r.shit($mask($fulladdress,3)),Don't mess with me!) | mode $chan -Q | kick $chan $nick $isset($r.shit($mask($fulladdress,3)),Don't mess with me!)
timer
}
}


I'm a beginner coder, so I am sure there is a simpler way of coding this lol, but I just went with whatever worked. Basically I wanted the script to kick ban whoever kicks me, but also set -Q, because one of the channels I am in has mlock +Q set. So that others cannot kick, but since a lot of them have Qkickers, it still happens. So I want to implement a Qkicker into my revenge kick.


The problem with my shitlist is when I want to delete a specific person from it, I can't. If I click delete, it deletes everyone on my shitlist. So I want to set up an option so that when I click delete, a pop up comes up and asks me for the nick of the person I want taken off.

This is the popup, that once clicked, deletes everyone from my shitlist.
Quote:
..Del:{ shitlist del $$1 }


This code is what I tried to do to solve what I wanted. The popup shows up to type someone's name in, but nothing happens when I type in the name and hit enter to have them removed.
Quote:
..Remove From Shitlist:.var %cxc $??:"Nick Name": | .ruser 40 %cxc | .ruser %cxc 40



So does anyone know how to get that to work?


Ever stop to think and forget to start again?
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
I'm not familiar with channel mode +Q, but I see that you have an unused timer command in the ON KICK event.
You obviously have custom aliases, so I can't test this, but here's a re-write of your ON KICK event
Code:
on 1:KICK:#: {
  if ($knick == $me) {
    timer 1 3 qkick $chan $nick $wildsite $fulladdress
  }
}
alias -l qkick {
  mode $1 -Qo+bb $2 $3 $address($2,3)
  kick $chan $nick $isset($r.shit($mask($4,3)),Don't mess with me!) 
}


As to incorporating a Qkicker into your revenge kick, this can cause problems on a network level, as multiple revenge kickers with Qkicker included can flood a network with commands, and one or both of you (meaning the two clients that are battling using the scripts) can be g-lined, k-lined, or z-lined from the network.

Regarding your shitlist, I'd need to see your actual shitlist code and the full pop-up section as well as clarification as to where the pop-up is available from (channel, nicklist, etc)

Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
Thanks. I added the ON KICK script you made to my remotes..however it gives me a syntax error for the kick command. The rest works though lol, or as far as I can tell. Usually with a Qkicker, you would need to implement two -Q commands, because chanserv is sometimes faster than your script lol. Do you know how to do that?

This the the shitlist code in my remotes section:

Quote:
if ($istok($remove($level($mask($fulladdress,3)),$chr(61)),40,44) == $true) { if ($me isop $chan) { mode $chan -Qo+bb $nick $wildsite $address($nick,3) | kick $chan $nick $isset($r.shit($mask($fulladdress,3)),No Reason Specified) («« § H î t £ î § t Ë Ð »») | mode $chan -Q | kick $chan $nick $isset($r.shit($mask($fulladdress,3)),No Reason Specified) («« § H î t £ î § t Ë Ð »») | echo $nick $bracket($address) $c(1) is going to be removed from $c(2) $+ $chan $+ $c(1) $+ . $bracket(«« § H î t £ î § t Ë Ð »») } }


And this is what is in my Pop Ups section, under the Nick List portion:
Quote:
.Shit List
..Add:{ ic $$1 | shitlist add $1 $$?="Enter a Shitlist Reason for [ $1 ] $crlf $+ Example: That'll Teach Yah!" }
..Del:{ shitlist del $$1 }
..Remove From Shitlist:.var %cxc $??:"Nick Name": | .ruser 40 %cxc | .ruser %cxc 40
..-
..Clear:{ shitlist clr $?!="Delete every Shitlisted User?" }


This is what is in my Alias for it:
Quote:
shitlist {
if ($1 == add) && ($3 != $null) { ic $2 | auser -a 40 $address($2,3) | w.shit $address($2,3) $3- | shitlist-h $2 $3- }
elseif ($1 == del) && ($2 != $null) { ic $2 | d.shit $address($2,3) | rlevel -r 40 }
elseif ($1 == clr) { c.shit $2 }
else { error Syntax: /shitlist <add|del|clr> [nick] [reason] }
}
shitlist-h { if ($1 != $null) { set %~shitlist 0 | :start | inc %~shitlist 1 | if ($comchan($1,%~shitlist) == $null) { unset %~shitlist } | elseif ($me isop $comchan($1,%~shitlist)) { kb2 $comchan($1,%~shitlist) $1 $iif($2 == $null,No Reason Specified,$2-) (§Hît|î§tËÐ) | goto start } | else { goto start } } }



The add command works ok, would be nice if I could add people that were outside of the channel though. At the moment you right click the users name, click add, then insert a reason. I think it'd be better if it also had a pop up that asked you the name of the person you wish to shitlist. That way if someone quits before you get the chance to add them...they can still be added.

Also I have noticed that when you add somebody to the shitlist, with the channel mlocked with +Q, they are not kicked out of the channel, until I manually Qkick them. Once they are manually kicked, the script will keep them out of the channel, it just won't do the initial kick. Which I don't understand lol, it sets the bans, but ignores the -Q command until the user is kicked by me. This only occurs when someone is initially added.

The Del command, deletes everyone on my shitlist...so I need a pop up that asks me who I want to delete.

The Remove From Shitlist command, was the attempt to create a pop up...a pop up comes up, but when you put in someones name..they aren't removed. Nothing happens

The clear command...also does nothing lol.

Thanks alot for your help smile


Ever stop to think and forget to start again?
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
Ok, I was hoping this wouldn't be this complicated, but you've got aliases galore being called, and in order to make sense of what you're trying to do, and get you a good working code, I need the code for all of the aliases that you're using. BTW: When posting code, please use the Code Tags, not the Quote tags.

Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
um what do you mean a code for all the alias I am using?


Ever stop to think and forget to start again?
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
Hopefully I won't need all of the aliases, but I do need the one's that are used in the shitlist code, either directly or indirectly.

You might also think about having all of the code in one remote file, using the alias prefix for each alias, and the menu nicklist option for the parts that are currently in your Nicklist pop-ups.

Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
I don't know how to code it to put it all in one remote file :s.

These are the only other codes in alias that i could find pertaining to the shitlist:

Code:
w.shit { if ($2 != $null) { writeini -n Docs\Shitlist.ini Shitlist $replace($1,[,_,],_,*,_) $strip($2-,burc) } }
r.shit { if ($1 != $null) { return $readini -n Docs\Shitlist.ini Shitlist $replace($1,[,_,],_,*,_) } }
d.shit { if ($1 != $null) { remini Docs\Shitlist.ini Shitlist $replace($1,[,_,],_,*,_) } }
c.shit { if ($1 == $true) { write -c Docs\Shitlist.ini } }


The censored bit, is the word sh*t


Ever stop to think and forget to start again?
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
Here's what I've managed to come up with. This whole thing goes into a remote file, and should remove the aliases and pop-ups from their respective locations.

Due to not having code for some aliases that are called using custom identifiers, this has only been tested to the best of my ability.

The aliases are isset, bracket, c and ic

Code:
on @*:KICK:#: {
  if ($knick == $me) {
    timer 1 3 qkick $chan $nick $wildsite $fulladdress $address
  }
}
alias -l qkick {
  mode $1 -Qo+bb $2 $3 $address($2,3)
  kick $1 $2 $isset($shitlist($mask($4,3)),Don't mess with me!) 
  echo $1 $bracket($5) $c(1) is going to be removed from $c(2) $+ $1 $+ $c(1) $+ . $bracket(«« § H î t £ î § t Ë Ð »») 
}
menu nicklist {
  .Shit List
  ..Add: shitlist add $1 $$input(Example: That'll Teach Yah!,e,Enter a Shitlist Reason for [ $1 ],That'll Teach Yah!)
  ..Del: shitlist del $$1
  ..Remove From Shitlist: var %cxc $??:"Nick Name": | .ruser 40 %cxc | .ruser %cxc 40
  ..-
  ..Clear: shitlist clr $?!="Delete every Shitlisted User?"
}
alias -l shitlist {
  if $isid {    return $readini(Docs\Shitlist.ini,n,Shitlist,$replace($$1,[,_,],_,*,_))  }
  else {
    if ($1 == add) && ($3) {
      ic $2
      auser -a 40 $address($2,3)
      writeini -n Docs\Shitlist.ini Shitlist $replace($address($2,3),[,_,],_,*,_) $strip($$3-,burc)   
      shitlist-h $2 $3-
    }
    elseif ($1 == del) && ($2) {
      ic $2
      remini Docs\Shitlist.ini Shitlist $replace($address($2,3),[,_,],_,*,_) 
      ruser 40 $address($2,3)
    }
    elseif ($1 == clr) {    .remove Docs\Shitlist.ini  }
    else { error Syntax: /shitlist <add|del|clr> [nick] [reason] }
  }
}
alias -l shitlist-h {
  var %a = 1, %b = $comchan($1,0)
  while %a <= %b {
    if ($me isop $comchan($1,%a)) {
      kb2 $comchan($1,%a) $1 $iif(!$2,No Reason Specified,$2-) (§Hît|î§tËÐ) 
    }
  } 
  inc %a
}

Joined: Sep 2007
Posts: 109
K
Vogon poet
Offline
Vogon poet
K
Joined: Sep 2007
Posts: 109
Code:
$bracket( )
$c( ) 
ic

What functions do they have?

Joined: Oct 2003
Posts: 3,918
A
Hoopy frood
Offline
Hoopy frood
A
Joined: Oct 2003
Posts: 3,918
I assume $bracket is ( $+ $1- $+ ) and $c is $chr(3) $+ $1 from the name/way they're used


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
I thought that these were most likely, and kb2 (which I forgot to mention earlier) is a kick-ban alias.. but there's still the ic command, for which I have no reference to try to re-make.

Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
I feel kind of stupid that I don't understand what everyone is talking about lol.

What does this error mean? And how is it fixed, I've never come across it before:

Quote:
««Ë®®öR»» Users's mask is not in the Internal Address List, please make sure you have a common channel and type /who User.



Your script didn't seem to fix anything though. It still won't do the initial kick in a channel mlocked with +Q, and I can't choose who I want to add/delete to/from the shitlist

Last edited by squishy; 20/04/08 09:12 PM.

Ever stop to think and forget to start again?
Joined: Aug 2004
Posts: 7,252
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,252
1) That error means that the name you tried to add to the shitlist wasn't in a channel that you were also in. ie: you didn't have a common channel. Without that, mIRC can't look up the person's address which it needs for the script to work, as it uses the address to add the person to the shit list.

2) If you want a fully working script, stop giving me bits and pieces of what you're working with, or completely scrap what you currently have and get a shitlist script from one of the scripting forums. This forum is for helping you with a script, not for writing one from scratch.

3) That +Q modelock seems to be unique to your network, so any script that you use or want to use would have to be tested there, so we'll need the name or connection information for the network and channel, so that tests can be properly completed.

Joined: Apr 2008
Posts: 6
S
squishy Offline OP
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
S
Joined: Apr 2008
Posts: 6
1) I know what the error message was saying..but the user was in the channel..I was right clicking him :s

2) I don't want you to write me one from scrap...and I apologize but I really don't know what information you are missing. The script codes I gave you is all that I know of

3)I connect to irc.zirc.org, you can find me in #buds, or #BlackAftermath


Ever stop to think and forget to start again?

Link Copied to Clipboard