|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
I found this in the forum announceI would like something similar but istead of announce TEXT to a different channel I want to play a sound (.wav file) when some user on a channel type a certain TEXT something like on 1:call me:*:#CHAN1: {
if ($nick == billgates) { sound/ PlayThisSoundfile.wav $1- }
} I know this i completly wrong but I think you´ll understand billgates say "call me" in #CHAN-1 and mom say "hello" in #CHAN-2 in booth cases I want to hear a soundfile played, but not when they or any other person say something.
|
|
|
|
Joined: Sep 2003
Posts: 261
Fjord artisan
|
Fjord artisan
Joined: Sep 2003
Posts: 261 |
Well syntax is ok on the sound line just take out the /
on *:TEXT:call me:#chan:
We don't just write the scripts, we put them to the test! (ScriptBusters)
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
Thanks! Is this correct to add more rules: on *:TEXT:call me:#chan1: {
if ($nick == billgates) { sound/ PlayThisSoundfile.wav $1- }
}
on *:TEXT:hello:#chan2: {
if ($nick == mom) { sound/ PlayThisSoundfile.wav $1- }
}
|
|
|
|
Joined: Sep 2003
Posts: 261
Fjord artisan
|
Fjord artisan
Joined: Sep 2003
Posts: 261 |
on text yourself crazy . I usually if i use on text for things, place everything under 1 like so
on *:text:*:#: {
if ($chan == #chan1) {
if ($nick == whoever) {
if (call me == $1-2) { do this }
}
}
if ($chan == #chan2) { etc... }
}
We don't just write the scripts, we put them to the test! (ScriptBusters)
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
What am I doing wrong? I´t wont work on *:text:*:#: {
if ($chan == #chan1) {
if ($nick == billgates) {
if (call me == $1-2) { sound PlayMe.wav $1- }
}
}
if ($chan == #chan2) {
if ($nick == mom) {
if (hello == $1-2) { sound PlayMe2.wav $1- }
}
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
I would try something like this: on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call me
if (%string isin $2-) { splay song1.wav }
}
}
elseif ($chan == #chan2) {
if ($nick == mom) {
var %string = hello
if (%string isin $2-) { splay song2.wav }
}
}
} I tested this code, and it should work. Just make sure that the sound that you want to play is in your sounds directory: C:\Program Files\mIRC\Sounds\ for example.
|
|
|
|
Joined: Sep 2003
Posts: 261
Fjord artisan
|
Fjord artisan
Joined: Sep 2003
Posts: 261 |
Bad thing about isin is it matches any occurance of "call me". Use $1- if you use his. Though there are better ways to solve these examples are for beginners .
We don't just write the scripts, we put them to the test! (ScriptBusters)
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
yeah, but only when billgates says it. which is what he wanted I think.
|
|
|
|
Joined: Sep 2003
Posts: 261
Fjord artisan
|
Fjord artisan
Joined: Sep 2003
Posts: 261 |
True, billgates could say :hello there call me a small guy. or he could just say:call me. isin is good for that kind of matching. I was just basing what i showed him from his example of text .
We don't just write the scripts, we put them to the test! (ScriptBusters)
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
Still nothing:(
Can´t understand whats wrong
note! I use mirc in D:\Program Files\mIRC and the .wav in D:\Program Files\mIRC\sounds
That should not matter right?
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
No, that shouldn't matter. Can you paste the code that you use? The last time you pasted your code, you missed some brackets }
Also, rename the sound file, to a 1 word name like: song.wav I'm not sure if that makes a difference.
Also, make sure that you have this code only 1 time. And there can be only one on:TEXT: event per script file.
|
|
|
|
Joined: Aug 2005
Posts: 1,052
Hoopy frood
|
Hoopy frood
Joined: Aug 2005
Posts: 1,052 |
Still nothing:(
Can´t understand whats wrong
note! I use mirc in D:\Program Files\mIRC and the .wav in D:\Program Files\mIRC\sounds
That should not matter right?
on *:TEXT:*:#:{
if ($nick == whatevernick) && ($1-$2 == Call me) && ($len($1-) == 7) { splay $mircdirsounds\filename.wav }
}
So if $nick would == whatevernick and his text would be call me it would play the filename.wav in the SOUNDS dir also a LENGHT checker to make sure only CALL ME should be there
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
This is what I have in tab "Remote" on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call
if (%string isin $1-) { splay notice.wav }
}
}
elseif ($chan == #chan2) {
if ($nick == mom) {
var %string = hello
if (%string isin $1-) { splay notice.wav }
}
}
} Also, rename the sound file, so a 1 word name like: DONE Also, make sure that you have this code only 1 time: DONE And there can be only one on:TEXT: event per script file DONE
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
Weird, that should work. At least for me it does.
I presume you are sure that it is billgates in #chan1 saying call and its mom in #chan2 saying hello
Well, I wouldn't know in that case. The code works in any case, so that shouldn't be the problem.
|
|
|
|
Joined: Oct 2004
Posts: 8,330
Hoopy frood
|
Hoopy frood
Joined: Oct 2004
Posts: 8,330 |
Did you change #chan1 and #chan2 to the channels you want to use it in? You don't want to leave those as they are unless you're actually in #chan1 and #chan2.
Invision Support #Invision on irc.irchighway.net
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
Yes. in those channels correct nicknames correct messages tried both $1- and $2- changed .wav file to see if the problem was there both used long (100kb) and short (20kb) what else have I done? restart of mirc and pc here is the funny part! it worked one time then it sudenly stop working again??? THIS IS THE EXACT CODE I HAVE on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call
if (%string isin $1-) { splay notice.wav }
}
}
elseif ($chan == #chan2) {
if ($nick == mom) {
var %string = hello
if (%string isin $1-) { splay notice.wav }
}
}
}
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
One more thing you could try, is just remove all the code from the remote file that you have. Then go to File - New Save the new remote file with a new name. Paste the code again. And try it again.
|
|
|
|
Joined: Sep 2006
Posts: 14
Pikka bird
|
OP
Pikka bird
Joined: Sep 2006
Posts: 14 |
I think I found where the problem begin If I only use this it´s OK an working fine on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call
if (%string isin $1-) { splay notice.wav }
} BUT! when i use the whole code it´s NOT working on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call
if (%string isin $1-) { splay notice.wav }
}
}
elseif ($chan == #chan2) {
if ($nick == mom) {
var %string = hello
if (%string isin $1-) { splay notice.wav }
}
}
}
|
|
|
|
Joined: Aug 2005
Posts: 1,052
Hoopy frood
|
Hoopy frood
Joined: Aug 2005
Posts: 1,052 |
I think I found where the problem begin If I only use this it´s OK an working fine on *:text:*:#:{
if ($chan == #chan1) {
if ($nick == billgates) {
var %string = call
if (%string isin $1-) { splay notice.wav }
} BUT! when i use the whole code it´s NOT working on *:text:*:#:{
[color:red]if ($nick == billgates) && ($nick ison #chan1) { [/color]
if (call isin $1-) { splay notice.wav }
}
[color:red]elseif ($nick == mom) && ($nick ison #channel2) { [/color]
if (hello isin $1-) { splay notice.wav }
}
} Btw i edited the code a little just above here The problem i usee with that script is that IF $chan == CHAN1 and then else if $chan == chan2 well it should start by evaluatiing the nicknames first and at same time evaluating weather this nick is on channel 1 or 2 the code obviously wont work if mom ison channel 1 or if billgates ison #channel 2 but start by evaluating the $nicks in that method as well has creating a var for the strings why not just use if (word isin $1-) or if you need more then one word if (word word iswm $1-) --- edited code to remove the uneccesary var
|
|
|
|
Joined: Apr 2006
Posts: 464
Fjord artisan
|
Fjord artisan
Joined: Apr 2006
Posts: 464 |
Yeah, I also like that new code better indead. I originally added the variable, since I didnt get it to work when we started with detecting "call me" (two words).
But still, I don't think this will solve the problem, since the code I posted worked fine as well, although it was a little longer and contained an unneeded variable.
|
|
|
|
|