mIRC Home    About    Download    Register    News    Help

Print Thread
Page 1 of 2 1 2
#102785 13/11/04 04:17 AM
W
Wragg
Wragg
W
i have trouble
i am using 1 script that is only supports mirc 6.03 (in newer it becomes buggy)

and i am trying to prevent some things to be written but as i tested mirc 6.03 it seems that mirc 6.03 tottaly ignores ON INPUT event no matter is it defined to work in channel, query or in any window... i made this:

on *:input:*:{
if ($1 == /crap) {
haltdef
//echo -a this command is not supported }
halt
}

but instead "this command is not supported"
i get this by server which mirc SHOULD stop

(05:15) CRAP Unknown command

so i ask advanced coders here is there another way to block things like this (input) by not using input... or to force mirc to do itz job ?

because of script stability i dont intend to use newer versions

#102786 13/11/04 04:23 AM
Joined: Feb 2003
Posts: 3,412
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,412
on 1:INPUT:*: { if ($1 == /crap) { echo -a this command is not supported | halt } }

#102787 13/11/04 04:31 AM
W
Wragg
Wragg
W
same thing...

(05:31) CRAP Unknown command


smirk

#102788 13/11/04 04:32 AM
Joined: Feb 2003
Posts: 3,412
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,412
works just fine here.. you are shure you dont have any input somwhere else in the same file? "abow that line"

#102789 13/11/04 04:38 AM
W
Wragg
Wragg
W
in the same .mrc file i have only this

ON 1:INPUT:=: { if ($1 == .me) || ($1 == /me) || ($1 == .ame) || ($1 == /ame) || ($1 == /action) { .me $replace($2-,$chr(32),$chr(160)) | .echo 7 -a $timestamps $theme(me,$me,$2-) | halt } | if ($left($1,1) != /) { .echo -a $timestamps $theme(metext,$nick,$1-) | .msg $active $1- | halt } }

ON 1:INPUT:?:{ if ($1 == .me) || ($1 == /me) || ($1 == .ame) || ($1 == /ame) || ($1 == /action) { .me $2- | .echo -a $timestamps $theme(me,$me,$2-) | halt } | if ($left($1,1) != /) { .quote PRIVMSG $active : $+ $1- | .echo -a $timestamps $theme(metext,$nick,$1-) | halt } }

ON 1:INPUT:#:{ if ($1 == .me) || ($1 == /me) || ($1 == .ame) || ($1 == /ame) || ($1 == /action) { .me $2- | .echo -a $timestamps $theme(me,$me,$2-) | halt } | if ($left($1,1) != /) { .quote PRIVMSG $active : $+ $1- | .echo -a $timestamps $theme(metext,$nick,$1-) | halt } }


on *:INPUT:*:{ if (($1 == .anick) || ($1 == /anick)) { set %anick $2 } }

with this code

Last edited by Wragg; 13/11/04 04:39 AM.
#102790 13/11/04 04:46 AM
Joined: Feb 2003
Posts: 3,412
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,412
try put my line in a empty file.. then you should see it working..

#102791 13/11/04 04:49 AM
W
Wragg
Wragg
W
yay !!! it worked ! (stupid me)

thank you very much !

#102792 13/11/04 04:57 AM
Joined: Feb 2003
Posts: 3,412
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,412
np laugh

#102793 13/11/04 05:01 AM
Joined: Feb 2004
Posts: 2,013
F
Hoopy frood
Offline
Hoopy frood
F
Joined: Feb 2004
Posts: 2,013
Just as a side note, if you think the script is a little cluttered, you could do:

if ($istok(.me /me .ame /ame /action,$1,32))

instead of

if ($1 == .me) || ($1 == /me) || ($1 == .ame) || ($1 == /ame) || ($1 == /action)

Greets

#102794 13/11/04 05:13 AM
W
Wragg
Wragg
W
hmmm but still it does ignores some things...

look at this for example:

on 1:INPUT:*: {
if ($network == undernet) {
if (($1 == /mode) || ($1 == //mode)) {
if (h iswm $3) {
.echo $chan Undernet doesn't support halfop mode
halt
}
}
}
}

when i do +h mode on me mirc does not halts nor echoes this msg


To FiberOptics:
hehe thanks, but its ok by me as long it works laugh

#102795 13/11/04 05:16 AM
Joined: Feb 2004
Posts: 2,013
F
Hoopy frood
Offline
Hoopy frood
F
Joined: Feb 2004
Posts: 2,013
You have to use wildcards, when trying to match with iswm. Either that, or use isin, regex, w/e.

#102796 13/11/04 05:23 AM
W
Wragg
Wragg
W
okay, it works with ISIN but only if i type it :P well ok it is on input but what to do if i have that in popup section ?

code:

.$iif($me !ishop #, ( +h ) halfop, $style(2) ( +h ) halfop):/mode $chan +h $1-31

.$iif($me !ishop #, ( -h ) dehalfop, $style(2) ( -h ) dehalfop):/mode $chan -h $1-31

how can i apply that halting cmd on this ?
it is still /mode $chan and $3 is H

hope you understand

Last edited by Wragg; 13/11/04 05:24 AM.
#102797 13/11/04 05:34 AM
Joined: Feb 2004
Posts: 2,013
F
Hoopy frood
Offline
Hoopy frood
F
Joined: Feb 2004
Posts: 2,013
Personally, I think you are going at this in an inefficient way.

I hadn't looked at the thread, so didn't know what you were doing.

But if you want to alter the way commands work, or change their actions, you shouldn't try to detect them with on input events, but rather create custom aliases.


alias me echo -a this is my own alias which overrides the built in one, unless if you type /!me

alias ame return

alias mode {
...
if $network == undernet && h isin $2 { blabla }
...
}

This way, it will work, wherever it is used, whether from the editbox, or from popups, or from scripts etc.

You get the picture.

Greets

#102798 13/11/04 05:39 AM
W
Wragg
Wragg
W
and if i make
alias mode { bla bla }

what should i write so that it dont reflect on other modes
if i make it to detect only +h and +u on undernet
then what to do write so it wont interfire with
/mode $chan +b or +o someone

OR

/mode $channel +s +i +l

etc...

because i already have this in aliases:

mode {
If ($1) && (+b == $2) { set %bch $1 }
mode $1-
}


???

Last edited by Wragg; 13/11/04 05:40 AM.
#102799 13/11/04 05:43 AM
Joined: Feb 2003
Posts: 3,412
S
Hoopy frood
Offline
Hoopy frood
S
Joined: Feb 2003
Posts: 3,412
if $network == undernet && h isin $2 { blabla }
elseif $network == undernet && +b isin $2 { mode # +b what_ever }

you mean like that?

but the first line only react if h isin $2 so you can use:

if $network == undernet && h isin $2 { blabla }
else {
somthing
}

Last edited by sparta; 13/11/04 05:44 AM.
#102800 13/11/04 05:51 AM
Joined: Feb 2004
Posts: 2,013
F
Hoopy frood
Offline
Hoopy frood
F
Joined: Feb 2004
Posts: 2,013
By the way, I'm rarely on IRC, so I don't know for sure, but you should use isincs if there is also a mode H (upper case), because isin won't make a distinction between upper/lower case.

Also, I think it's possible to indeed do something like /mode # +mode1 -mode2 +...
so you are going to need a better matching pattern, something a regex can do for you.

I'm too tired right now, going to bed, catch ya later.

Last edited by FiberOPtics; 13/11/04 05:52 AM.
#102801 13/11/04 05:51 AM
W
Wragg
Wragg
W
i managed to fix all that, i personally want to thank both of you coz you helped me alot today with 1 thing that killed me long time =)

#102802 13/11/04 05:53 PM
W
Wragg
Wragg
W
well i dont know what regex is nor how to use it... so some example would be nice :P

#102803 13/11/04 06:13 PM
Joined: Feb 2004
Posts: 2,013
F
Hoopy frood
Offline
Hoopy frood
F
Joined: Feb 2004
Posts: 2,013
Wait,

are you sure that it is possible to set multiple modes, seperated by a space?

Like //mode # +s +i ... ? It didn't work for me, so it looks like all modes have to be in one token, like +s+i-m...

If that is correct, then using "if h isincs $2" is sufficient.

Greets

#102804 13/11/04 07:00 PM
W
Wragg
Wragg
W
in channel
i typed:

/mode #channel +s +t +i +l 3

result:

(19:59) (modes@Wragg): +stil 3

but i changed isin to isincs... so dunno does anything alse needs to be modified ?

Page 1 of 2 1 2

Link Copied to Clipboard