Conscious commented on a Page, Ultimate Bot Auto Voice Script  -  Jan 13, 2013

I am also sure that some of you clever folk will come up with a way to turn all of this into a tidy bundle with fewer lines. G'luck if you do.

Challenge accepted!

on *:JOIN:#: if ($nick($chan,$me,~&@%)) .timer 1 3 $!iif( $!nick( $chan , $nick ,~&@%+) ,noop, mode $chan +v $nick )

I did it like this. Does this work as intended, for you, or did I miss a feature?

Of course, this isn't the most readable code out there. In another thread you asked for advice:

I believe your issue with only some people getting +v is when you override the timer - that is, you start a timer with its name of one that is yet to run. However, you can have unnamed timers, my just calling the /timer command without anything appended to it, e.g: timer 1 1 echo -a test

My snippet above makes use of this.

In the snippet above, I made use of my knowledge of mIRC's evaluation. However, a much more simpler way to do this would be to have an alias and the join event. In the join event, it would call a timer with the alias as the command, and using $chan and $nick as the alias parameters. In the alias, it uses $1 and $2 to check to see if they need a voice, and if so, add them as voice.

If there's any confusion with this don't hesitate to ask :)

raccoon  -  Jan 13, 2013

Consider using mIRC's built-in Auto-Voice feature? /avoice !@* #MyChan

Conscious  -  Jan 13, 2013

Hah, didn't know that existed. Fascinating :)

NickLeStrange  -  Jan 13, 2013

That is quite neat and tidy! I also didn't know that mIRC had a built in /avoice - however, this script has separate slots for when more than 1 person joins and then waits to see if the person is going to get opped and if not continues voicing the person. Because there's a few ops in the chan.

From what I can tell, I dunno if I'm right, but your code there allows for two people? I do like it.

Conscious  -  Jan 13, 2013

The code doesn't need slots - you can look at it as having infinite "slots".

NickLeStrange  -  Jan 13, 2013

That's great! I'll give it a go.

blackvenomm666  -  Jan 13, 2013

nicklestrange he added a timer to the on join event that will give it enough time to check if the person is op or not.

Conscious  -  Jan 13, 2013

@blackvenomm666 so did the original script. However, the extended code was because he was using named timers (overriding if lots of people join) and not passing parameters in the timers

NickLeStrange  -  Jan 14, 2013

Hmm Conscious, the code worked, a few times. And then something went wrong. There was a dude who had connection issues, he joined and quit about 5 times, and every time he joined he was oppend and then the script didn't voice him, as he should, but then it started voicing him after he got opped, which was odd.

[19:07:12] @Acid[]Killer (AcidKiller@AcidKiller.vampyres.cathedral) Quit (Connection reset by peer)
[19:07:44]
Acid[]Killer (AcidKiller@AcidKiller.vampyres.cathedral) has joined #vampyres_cathedral
[19:07:44] ChanServ sets mode: +o Acid[]Killer
[19:07:44]
Red_Queen sets mode: +v Acid[]Killer

Any ideas?

Conscious  -  Jan 14, 2013

I believe the bot triggered the /mode #chan +v nick command before it saw that he was opped; this would've been due to a timer starting when he joined, then he quit, then he joined just as it checked

Sign in to comment

Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.