[mirc] event scriptje

Pagina: 1
Acties:

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Hallo, ik zit met een klein probleempje. Weet niet zeker of het hier gepast is, maar deze rubriek kwam het kortst in de buurt.

Nou, eerst het verhaal, er zijn vast wel veel menesn hier ide op IRC zitten, en misschien zelfs nog wel op quakenet. Een maat van me vroeg of ik een scriptje kon maken, dat, als iemand in ons channel spamde, het wat leuke dingetjes kon doen.

Allereerst deed het scriptje mensen kicken op het moment dat ze een tekst typten waarin 'perform' en '#', aangezien dit de meest gespamde regels is die er bestaat.
Nu wilde ik dit scriptje uitbreiden, om het channel te joinen dat de persoon net heeft getypt, om vervolgens daar wat leuke dingetjes te zeggen,en dan weer te parten. Gewoon, fun scriptje, voor de gein :) Maar, het probleem is dat ik geen idee heb hoe ik dat channel uit die tekst moet vissen, of uberhaupt, hoe ik die tekst kan aanspreken.

Mijn scriptje so far:

REMOTE:
on 1:TEXT:*perform*#*:#:/spamthing

ALIAS:
/spamthing {
join %chantarget
describe %chantarget 12 $nick is a spammer
part %chantarget
}


Iemand een ideetje, kheb al de mIRC manual van voor tot achter doorgelezen, en nogal wat gegoogled, maar nix nuttigs gevonden.

Bij voorbaat dank,
GreyFox

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • subsonik
  • Registratie: Augustus 2001
  • Laatst online: 16-08 00:27
code:
1
2
3
4
5
6
on 1:TEXT:*#*:#: {
  %chantarget = $chr(35) $+ $gettok($gettok($strip($1-), 2, 35), 1, 32)
  join %chantarget
  describe %chantarget 12 $nick is a spammer
  part %chantarget
}


Even een woordje uitleg:

De functie $gettok haalt het n-de stukje tekst uit een string, als je die string opsplitst volgens een gegeven karakter. Het karakter geef je mee dmv de ascii-code.
-> $gettok(string, n, ascii-code v karakter)

Nu distilleren we het channel uit de spamstring door:
1. eventuele control codes (color, bold, ...) te strippen uit de spamstring ($strip($1-))
2. het stuk tekst na de eerste # te bepalen ($gettok(string, 2, 35))
3. eventuele woorden na de spatie weg te laten ($gettok(string, 1, 32)
4. het teken "#" ervoor zetten

Het scriptje zal echter niet in alle gevallen werken, bv als de spammer "join channel blaat" spamt, of "### join channel #blaat and please perform ###" oid...

Hoe je precies triggert op zowel *perform* als *#* weet ik niet, maar op de manier die jij voorstelde werkt het bij mij alleszins niet...

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Thx, dat is precies wat ik nodig had.
Als ik *perform*#* in de TEXT-event zet werkt het precies zoals ik wil hoor.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info