mIRC Home    About    Download    Register    News    Help

Print Thread
A
adamb53
adamb53
A
my script:

Code:
on *:TEXT:*:#:{
  if ($1 == ) {
    /notice $nick
  }
  else {
    if ($1 == @) {
      /msg $chan
    }
    halt
  }
}


how do i make it so everytime some1 says anything i wont have to put that in, like say i put that, then when some1 says like !clan it brings something up, but then when someone type !links it will bring something else up but using that same code...

Joined: Mar 2005
Posts: 420
X
Fjord artisan
Offline
Fjord artisan
X
Joined: Mar 2005
Posts: 420
You almost got it.

Code:
 
On *:TEXT:*:#: {
 if ( $1 == !clan ) {
   your stuff here...
 }
 elseif ( $1 == !links ) {
   your links stuff here...
 }
 elseif ( $1 == @stuff ) {
   your stuff here..
 }
}

V
Vulcan
Vulcan
V
though i am not entirely sure what it is your trying to do. i'll show you an easier way to do what you showed atleast.

Code:
on *:TEXT:*:#:{
  set %send.method $iif($left($1,1) == @,msg $chan,notice $nick)
  %send.method whatever you want to be sent out.
}


if your trying to make it do different things. you can put if statements in to check to see if someone said one of the triggerers.

ex.

Code:
on *:TEXT:*:#:{
  set %send.method $iif($left($1,1) == @,msg $chan,notice $nick)
  if ($right($1,1) == links) {
    if ($2 == home) { %send.method http://www.google.com | unset %send.method }
    if ($2 == mirc) { %send.method http://www.mirc.com | unset %send.method }
  }
}


if i completely missed what you were tryin to do im sorry im just a little tired...im just trying to be helpful.

Joined: Aug 2004
Posts: 7,168
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,168
first off, it's impossible for you to have a match on the on text event without having something in $1, so your first if statement is irrelevant, since it'll never be run (due to the fact that $1 will never be empty & that you have the comparison done incorrectly.

Using the wildcard matchtext, as you currently have it, for multiple possible matches is to have multiple if/elseif/else statements.

You should also give a thorough read of the help file /help if

A
adamb53
adamb53
A
ok well im guessing my code is wrong with what i am trying to do so lemme try to explain it more:

i want it so there is 1 bulk of code in the beggining that says if they have "!" then notice the nick and if it is "@" then msg the chan, and after that jus like have it so it is set to, if the person type the symbole and a word like home, it will do the send type, but after that in the same code make it so if they type the symbole and clan it will send something else in the style types... so i wouldnt have to type something like

on *:TEXT:!clan:#:/notice $nick....
on *:TEXT:@clan:#:/msg $chan...

everytime or have to type something else each time... i want it so ther eis 1 code for multiple words.... i tried the

Code:
on *:TEXT:*:#:{
  set %send.method $iif($left($1,1) == @,msg $chan,notice $nick)
  if ($right($1,1) == links) {
    if ($2 == home) { %send.method http://www.google.com | unset %send.method }
    if ($2 == mirc) { %send.method http://www.mirc.com | unset %send.method }
  }
}  


one but it didnt work

Joined: Aug 2004
Posts: 7,168
R
Hoopy frood
Offline
Hoopy frood
R
Joined: Aug 2004
Posts: 7,168
Well, your $right($1,1) only returns the last character from $1, so it'll never be links (which is 5 characters).

You have the right idea for doing the combinations, also, there's no need for the unset commands that you have as %send.method will be set to the new setting next time the command is called.

Joined: Mar 2005
Posts: 420
X
Fjord artisan
Offline
Fjord artisan
X
Joined: Mar 2005
Posts: 420
$right($1,1) should be $right($1,-1) then I would suggest using a local variable instead a global so you don't have to unset it everytime.

A
adamb53
adamb53
A
is this right in any way? i cant figure out how to work variables 100% yet...

Code:
/var $msg == {if ($1 == !) /notice $nick }{elseif ($2 == @) /msg #}

Joined: Sep 2005
Posts: 2,630
H
Hoopy frood
Offline
Hoopy frood
H
Joined: Sep 2005
Posts: 2,630
Code:
var %msg
if ($1 == !) %msg = notice $nick
elseif ($1 == @) %msg = msg $chan


OR

Code:
var %msg = $iif($1 == !,notice $nick,$iif($1 == @,msg $chan))

A
adamb53
adamb53
A
what does $iif mean

A
adamb53
adamb53
A
and how would you use that in the script? like this?:

Code:
on *:TEXT:*:#:{
if ($2 == blah) %msg blah blah


i am still trying to learn all about scripting, i am jumping around a bit but i am getting there

Joined: Sep 2005
Posts: 2,630
H
Hoopy frood
Offline
Hoopy frood
H
Joined: Sep 2005
Posts: 2,630
$iif() is a different way if doing an if-else statement:

$iif(<statement>,<what to do if the statement is true>,<what to do if the statement is false>)


Link Copied to Clipboard