[mIRC] Script flood onbedoeld het irc kanaal

Pagina: 1
Acties:

  • MRic3
  • Registratie: Januari 2001
  • Laatst online: 18-05 12:01

MRic3

Of praat ik weer poep?

Topicstarter
Mogguh, mijn eerste post in dit forum. Ik ben meestal van de, ik zoek/probeer het zelf wel uit maar hier komt ik niet meer uit.

Hieronder staat een stukje script wat een hashtable uitleest. Totaal zal het een regel of 20 kunnen zijn, die de bot in het kanaal moet weergeven.

code:
1
2
3
4
5
6
7
8
9
10
alias tvnu {
  %rss.nummer = 3
  :nexttvnu
  if $hget(rssfeed,<title> $+ %rss.nummer) {
    .timer 1 5 msg %rss.chan $hget(rssfeed,<title> $+ %rss.nummer)
    inc %rss.nummer
    goto nexttvnu  
  }
  unset %rss.* 
}


De timer die erin staat moet voorkomen dat de bot gaat flooden, maar deze werkt dus niet. Ik heb al geprobeerd een punt weg te halen, de tijd groter te maken, maar het maakt niks uit.

Wie ziet het probleem en weet een oplossing of een andere manier?

If the world didn't suck, we would all fall off!!!


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:53

Creepy

Tactical Espionage Splatterer

* Creepy doet een gok: Je timer gaat af na zoveel seconden. Echter, mIRC gaat gewoon door met de loop aangezien deze niet wacht totdat de timer wordt afgevuurd?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MRic3
  • Registratie: Januari 2001
  • Laatst online: 18-05 12:01

MRic3

Of praat ik weer poep?

Topicstarter
De loop gaat inderdaad door maar mIRC geeft (AFAIK) aan elke timer een nieuwe naam (als er, zoals in dit geval, geen timernaam is bepaald).

Ik zie nou ineens zelf het probleem die timers worden allemaal vrijwel op hezelfde moment aangemaakt... dus gaan allemaal op hetzelfde moment af... result een flood.

Hier kan ik dus wel iets op verzinnen denk ik...
maar als iemand suggesties heeft..... graag

If the world didn't suck, we would all fall off!!!


  • Kanarie
  • Registratie: Oktober 2000
  • Laatst online: 23:50

Kanarie

תֹ֙הוּ֙ וָבֹ֔הוּ

Je wilt een timer die elke keer dat ie gestart wordt, de tijd voor de volgende timer hoger zet.

In jouw scriptje worden er gewoon achter elkaar X timers gestart met elk 5 seconden pauze.

code:
1
2
3
4
5
6
7
8
9
10
11
12
alias tvnu {
  %rss.nummer = 3
  var %antispamtimer 0
  :nexttvnu
  if $hget(rssfeed,<title> $+ %rss.nummer) {
    inc %antispamtimer 5
    .timer 1 %antispamtimer msg %rss.chan $hget(rssfeed,<title> $+ %rss.nummer)
    inc %rss.nummer
    goto nexttvnu  
  }
  unset %rss.* 
}

[ Voor 58% gewijzigd door Kanarie op 01-11-2004 23:30 ]

We're trapped in the belly of this horrible machine. And the machine is bleeding to death.


  • MRic3
  • Registratie: Januari 2001
  • Laatst online: 18-05 12:01

MRic3

Of praat ik weer poep?

Topicstarter
yep THW Arie... zoiets had ik ook gedaan....
Ik heb het alleen iets simpelere (en dommer) gedaan ;)
Gewoon de variable %rss.nummer (die steeds 1 hoger wordt) gebruiken als wachtijd ;)
nadeel, die laatste regels duren wel heel lang :P

code:
1
2
3
4
5
6
7
8
9
10
alias tvnu {
  %rss.nummer = 3
  :nexttvnu
  if $hget(rssfeed,<title> $+ %rss.nummer) {
    .timer 1 %rss.nummer msg %rss.chan $hget(rssfeed,<title> $+ %rss.nummer)
    inc %rss.nummer
    goto nexttvnu  
  }
  unset %rss.* 
}


soms is het zo makkelijk he, als je het probleem maar ziet.

Ik toch voor de variant van THW Arie.. alleen nog iets aanpassen (variable unsetten ;) )

Allebij bedankt voor de hulp :)

If the world didn't suck, we would all fall off!!!


  • Kanarie
  • Registratie: Oktober 2000
  • Laatst online: 23:50

Kanarie

תֹ֙הוּ֙ וָבֹ֔הוּ

MRic3 schreef op 02 november 2004 @ 00:29:
yep THW Arie... zoiets had ik ook gedaan....
Ik heb het alleen iets simpelere (en dommer) gedaan ;)
Gewoon de variable %rss.nummer (die steeds 1 hoger wordt) gebruiken als wachtijd ;)
nadeel, die laatste regels duren wel heel lang :P

code:
1
2
3
4
5
6
7
8
9
10
alias tvnu {
  %rss.nummer = 3
  :nexttvnu
  if $hget(rssfeed,<title> $+ %rss.nummer) {
    .timer 1 %rss.nummer msg %rss.chan $hget(rssfeed,<title> $+ %rss.nummer)
    inc %rss.nummer
    goto nexttvnu  
  }
  unset %rss.* 
}


soms is het zo makkelijk he, als je het probleem maar ziet.

Ik toch voor de variant van THW Arie.. alleen nog iets aanpassen (variable unsetten ;) )

Allebij bedankt voor de hulp :)
Als het goed is wordt een var automatisch unset als hij niet meer nodig is.
Local Variables
Local variables are variables that exist only for the duration of the script in which they are created and can only be accessed from within that script. They can be created with the /var command:

/var %x

We're trapped in the belly of this horrible machine. And the machine is bleeding to death.


  • MRic3
  • Registratie: Januari 2001
  • Laatst online: 18-05 12:01

MRic3

Of praat ik weer poep?

Topicstarter
Nope, als je een variable aanmaakt in het script unset ie um niet automatisch.
het commande /var %x is een variabele aanmaken maar niet in een script.

Afijn het werkt super... Mijn botje wordt steeds completer, nuttiger en leuker :)
(en dat allemaal door trial and error .... * MRic3 is happy )

If the world didn't suck, we would all fall off!!!

Pagina: 1