[mIRC] Soort van "woord-filter" Script

Pagina: 1
Acties:
  • 320 views sinds 30-01-2008
  • Reageer

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Ik ben op zoek naar een scriptje voor (m)IRC wat ervoor kan zorgen dat bepaalde woorden worden gefilterd.

Mocht ik bijvoorbeeld een zin typen als "mijn naam is jaap" dat het woord jaap dan vervangen word door een leegte, of een text. Of uiteraard gewoon verwijderd word. Hetgeen wat dan over zou blijven is "mijn naam is" of, "mijn naam is piet"

Het weglaten van een zin met een bepaald woord zou helemaal mooi zijn.
Even voor de duidelijkheid, ik typ het wel zelf.

Is het ook mogelijk om bijvoorbeeld een commando als .search test, wat door iemand anders word ingevoert, te kopieeren en dan te typen in een ander channel?

Google en t.net heb ik gebruikt voor mijn pre-search, helaas hadden deze bijde geen antwoord op mijn vraag.

57696520646974206c65657374206973206e657264


  • tweakduke
  • Registratie: December 2001
  • Laatst online: 21:11

tweakduke

Moderator General Chat / Wonen & Mobiliteit
on *:text:mijn naam is jaap:#:msg $chan mijn naam is

Dat zou al genoeg moeten zijn :)

Tweakers Discord


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
tweakduke schreef op 10 januari 2004 @ 03:00:
on *:text:mijn naam is jaap:#:msg $chan mijn naam is

Dat zou al genoeg moeten zijn :)
Dat werkt helaas alleen als iemand anders het typt...

57696520646974206c65657374206973206e657264


  • Fludizz
  • Registratie: Mei 2002
  • Niet online
Was er niet een functie on *:input: ofzo?

is inmiddels half jaar geleden dat ik voor het laatst heb lopen scripten in mIRC en 2 maanden sinds ik et voor et laatste gebruikt heb...

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Fludizz schreef op 10 januari 2004 @ 03:45:
Was er niet een functie on *:input: ofzo?

is inmiddels half jaar geleden dat ik voor het laatst heb lopen scripten in mIRC en 2 maanden sinds ik et voor et laatste gebruikt heb...
Helaas... werkt niet met deze functie :/

57696520646974206c65657374206973206e657264


Verwijderd

in de help file zie ik:
on 1:INPUT:#mIRC:/echo You entered the text " $1- " in the #mIRC window

dus on 1:INPUT:#:{
if (fuck isin $1-) { echo lelijk woordje getypt | halt }
}

=> dat is dan de gemakkelijke oplossing denk ik :)
je zou verder ook nog kunnen zoeken waar het woordje fuck zich bevindt en
da fuck vervangen door f*ck

[ Voor 4% gewijzigd door Verwijderd op 10-01-2004 14:21 ]


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Verwijderd schreef op 10 januari 2004 @ 14:20:
in de help file zie ik:
on 1:INPUT:#mIRC:/echo You entered the text " $1- " in the #mIRC window

dus on 1:INPUT:#:{
if (fuck isin $1-) { echo lelijk woordje getypt | halt }
}

=> dat is dan de gemakkelijke oplossing denk ik :)
je zou verder ook nog kunnen zoeken waar het woordje fuck zich bevindt en
da fuck vervangen door f*ck
Zit ik nog met een klein probleempje, en dat is dat fuck alleen als los woord word gezien *fuck* werkt niet omdat irc het dan ook daadwerkelijk als *fuck* als los woord wil zien zodat het geignored kan worden.

Ik moet geen enkel woord maar een woord uit een zin hebben ongeacht waar het staat :P

[ Voor 26% gewijzigd door Sluuut op 10-01-2004 15:02 ]

57696520646974206c65657374206973206e657264


  • Switch
  • Registratie: December 2001
  • Laatst online: 30-08 17:36
Erm, ik denk.

on *:INPUT:#: {
if (fuck != $1-) { }
else {
/msg $chan $remove(fuck,u)
halt
}
}

Dan komt er fck te staan ipv fuck, hiermee kan je vast wel iets doen :) Alleen doet ie het niet als het woordje ín een zin staat, zal even kijken :).

code:
1
2
3
4
5
6
7
8
on *:INPUT:#: {
  set %1234567 $1-
  if (fuck !isin %1234567) { }
  else {
    /msg $chan $replace(fuck,u,*)
    halt
  }
}


Is betere code, doet het nog steedsn iet though ;)

[ Voor 28% gewijzigd door Switch op 10-01-2004 15:39 ]


  • Dala
  • Registratie: November 2000
  • Laatst online: 26-08 11:20
*never mind vraag verkeer gelezen

[ Voor 108% gewijzigd door Dala op 10-01-2004 15:42 ]


Verwijderd

on *:INPUT:# {
if (fuck isin $1-) {
/msg $chan $replace($1-,fuck,f0 $+ $chr(44) $+ 0_ck)
/halt
}
}

vervangt de u in fuck door een wit vierkantje :)

EDIT : als je het alleen wilt doen als dr ook andere woorden voor/bij staan moet je ff de fuck in " if (fuck isin $1-) {" vervangen door wat er omheen moet staan.

en werkt ook in zinnen en met woorden waar fuck in zit :
[15:46.24] <@Dammit> f_ck
[15:46.27] <@Dammit> f_cker
[15:49.44] <@Dammit> hey f_cktards :(

[ Voor 55% gewijzigd door Verwijderd op 10-01-2004 15:44 . Reden: ff wat toegevoegd ]


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Verwijderd schreef op 10 januari 2004 @ 15:39:
on *:INPUT:# {
if (fuck isin $1-) {
/msg $chan $replace($1-,fuck,f0 $+ $chr(44) $+ 0_ck)
/halt
}
}

vervangt de u in fuck door een wit vierkantje :)

EDIT : als je het alleen wilt doen als dr ook andere woorden voor/bij staan moet je ff de fuck in " if (fuck isin $1-) {" vervangen door wat er omheen moet staan.

en werkt ook in zinnen en met woorden waar fuck in zit :
[15:46.24] <@Dammit> f_ck
[15:46.27] <@Dammit> f_cker
[15:49.44] <@Dammit> hey f_cktards :(
Thanx, dit werkt inderdaad wel goed...
Ik heb nu het volgende:
code:
1
2
3
4
5
6
on *:INPUT:# {
  if (FUCK isin $1-) {
    /echo $chan FUCK is ignored.
    /halt
  }
}


Stel dat ik nou ook een ander woord wil ignoren, zou ik het dan in hetzelfde scriptje kunnen bijvoegen of moet ik er dan een 2e bijmaken (copy & paste) en iets veranderen? Ik kan trouwens 'INDEX' niet vinden in de irc help...

57696520646974206c65657374206973206e657264


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 28-08 08:51
als je t slim zou doen, maakte je een txt (of hash table) die je uitleest op t moment dat je iets intypt zo kun je namelijk heel eenvoudig en zonder extra te coden woorden toevoegen

Icons are overrated


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Helmet schreef op 10 januari 2004 @ 19:57:
als je t slim zou doen, maakte je een txt (of hash table) die je uitleest op t moment dat je iets intypt zo kun je namelijk heel eenvoudig en zonder extra te coden woorden toevoegen
Het gaat maar om 2 woorden dus zoveel maakt dat niet uit ;)

Overigens zit ik nu weer met het volgende probleem, dat een script wat iemand anders napraat in een ander chan, echo scriptje, dit override... dus dat gaat voorop het no-fuck script zegmaar.

57696520646974206c65657374206973206e657264


Verwijderd

Sluuut schreef op 10 januari 2004 @ 20:02:
[...]


Het gaat maar om 2 woorden dus zoveel maakt dat niet uit ;)

Overigens zit ik nu weer met het volgende probleem, dat een script wat iemand anders napraat in een ander chan, echo scriptje, dit override... dus dat gaat voorop het no-fuck script zegmaar.
Een woord toevoegen doe zoals jij zei (script kopieren) of door een extra if statement toe te voegen voor dat woord :

code:
1
2
3
4
5
6
7
8
9
10
on *:INPUT:# {
  if (FUCK isin $1-) {
    /echo $chan FUCK is ignored.
    /halt
  }
  else if (blaat isin $1-) {
    /echo $chan blaat is ignored.
    /halt
  }
}


@ problemen met ander scriptje :
als dat script ook gebruik maakt van een halt moet je ze samen voegen (als je ze gelijke prioriteit laten hebben) of die andere onder deze zetten bij je remote scripts. Ik neem trouwens aan dat je dus het ".search test" script uit je eerste post hebt gevonden ?

edit:

Trouwens die helpfile van IRC die je mist is heel handig als je wilt gaan scripten ;) Misschien toch es mIRC opnieuw downloaden of aan iemand die file vragen.

[ Voor 11% gewijzigd door Verwijderd op 10-01-2004 20:21 ]


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Omg.. dit doet me denken aan de oude goede QBasic en Pascal programmeer tijd, wat was dat leuk om te doen en uit te vinden hoe alles werkte... Maarja dat was vroegah ;)

Het werkt nu wel als ik het zelf typ, maar als ik het met een echo script van iemand anders dus in een ander chan copy, dan word het toch getypt. Terwijl het echo script onderaan staat dus een (naar mijn mening) een lagere priority zou moeten hebben.

het echo script gebruikt $$2 en dit ignore script $1, dat zou toch goed moeten zijn?

57696520646974206c65657374206973206e657264


Verwijderd

Oh, nu snap ik het... dat gaat niet werken..

Dit script filtert op user input, jou echo script roept direct msg <chan> <bericht aan> en wordt dus nooit gefilterd. Om dat op te lossen moet je in het scripts gedeelte een functie schrijven, bijvoorbeeld :

code:
1
2
3
4
5
6
alias filterexplicitcontent {
  if (FUCK isin $1- || BLAAT isin $1-) {
    return $null
  }
  return $1-
}


..die je dan aanroept in je echo script met $filterexplicitcontent(zin die gefilterd moet worden). Dr zijn ook andere manieren om het te doen, maar deze is het makkelijkst (geeft wel misschien /msg: insufficient parameters als dr een scheldwoord in de zin zit, ik heb m namelijk niet getest)

[ Voor 5% gewijzigd door Verwijderd op 10-01-2004 21:19 . Reden: functie wat efficienter gemaakt :P ]


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Ik weet niet of dit nog mag of niet, ik zit nu namelijk gewoonweg te vragen om een voorgekauwt script waar ik zelf niet wijs uit word.. dat word waarschijnlijk niet gerespecteerd, misschien wel... niet raak geschoten is altijd mis! Overigens heb ik zelf wel het een en ander geprobeerd maar word er echt niet wijs uit :(
(Als je het ziet snap je het wel maar reproceduren ...)
In ieder geval voor je hulp tot dusver Dammit.


Ik heb nu dit echo script:

In Popups:
code:
1
.Start:/auser echolist $$1


In Users:
code:
1
echolist:username


In Remote:
code:
1
on echolist:TEXT:*:#:/msg #channel $1-


Hoe voeg ik dat samen met;
code:
1
2
3
4
5
6
alias filterexplicitcontent {
  if (FUCK isin $1- || BLAAT isin $1-) {
    return $null
  }
  return $1-
}

57696520646974206c65657374206973206e657264


Verwijderd

Je verandert je stukje code in remote naar
code:
1
2
3
4
5
on echolist:TEXT:*:# {
  if ($filterexplicitcontent($1-) != $null) {
    /msg #channel $1-
  }
}


En vergeet niet #channel weer te veranderen in wat je dr echt had staan he :)
Trouwens dr zat ook een klein foutje in mijn code, als je de code gewoon plakt in aliases, hoeft dr natuurlijk geen alias voor (ik zet normaal alle code in aparte .mrc files) :

code:
1
2
3
4
5
6
filterexplicitcontent {
  if (FUCK isin $1- || BLAAT isin $1-) {
    return $null
  }
  return $1-
}


Trouwens als je het stukje van de helpfile over /return leest zou het begrijpbaar moeten zijn :) en anders kun je natuurlijk nog altijd ff vragen of ik/iemand anders de code wat wil toelichten.

[ Voor 16% gewijzigd door Verwijderd op 11-01-2004 00:41 ]


  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Verwijderd schreef op 11 januari 2004 @ 00:39:
Je verandert je stukje code in remote naar
code:
1
2
3
4
5
on echolist:TEXT:*:# {
  if ($filterexplicitcontent($1-) != $null) {
    /msg #channel $1-
  }
}


En vergeet niet #channel weer te veranderen in wat je dr echt had staan he :)
Trouwens dr zat ook een klein foutje in mijn code, als je de code gewoon plakt in aliases, hoeft dr natuurlijk geen alias voor (ik zet normaal alle code in aparte .mrc files) :

code:
1
2
3
4
5
6
filterexplicitcontent {
  if (FUCK isin $1- || BLAAT isin $1-) {
    return $null
  }
  return $1-
}


Trouwens als je het stukje van de helpfile over /return leest zou het begrijpbaar moeten zijn :) en anders kun je natuurlijk nog altijd ff vragen of ik/iemand anders de code wat wil toelichten.
Bedankt voor je hulp. Helaas werkt het nog niet, ik ga morgen eens uitpluizen wat er nou precies fout zit :)

Misschien ga ik uit enthousiastme nog veel irc scripten ook :P

57696520646974206c65657374206973206e657264


  • Alphega
  • Registratie: Oktober 2001
  • Laatst online: 02-05-2025
Ik denk dat je een scriptje als deze zoekt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
; -------------------------------------------------------
; |         Spell Checker with custom dictionary        |
; -------------------------------------------------------
; | Author = kilops (contact me on mircscripts.org)     |
; | Date   = Made in 1999/2000 , Released December 2002 |
; -------------------------------------------------------
;
alias spellcheck {
  /tokenize 32 $1-
  var %spellcheck.loop 1
  :loop
  if (%spellcheck.loop <= $0) {
    /var %spellcheck.word $ [ $+ [ %spellcheck.loop ] ]
    if ($sp.g(input,%spellcheck.word) != $null) { inc %spellcheck.corrected 1 | var %spellcheck.out %spellcheck.out $ifmatch }
    else { var %spellcheck.out %spellcheck.out %spellcheck.word }
    inc %spellcheck.loop 1
    goto loop
  }
  /return %spellcheck.out
}

;remote used to catch sentences typed (anywhere)
on *:input:*:{
  ;this line dont correct sentences when ctrl+return is pressed instead of a single return
  if ($ctrlenter == $true) { goto msghalt }
  ;avoid commands/aliases to ba processed
  if ($left($1,1) == /) { goto fin }
  ;avoid custom windows to be processed
  if ($left($active,1) == @) { goto fin }
  /tokenize 32 $spellcheck($1-)
  :msghalt
  if ($server != $null) { /msg $active $1- }
  if ($server == $null) { /echo $active 4Not connected to server , unable to send text : $1- }
  :halt
  /halt
  :fin
}
;
; -------------------------------------------------------
; Now you have to create a file named "spellcheck.ini" in the directory of mirc exe
; edit the file and type as folowed :
;
;[input]
;original_word=corrected_word
;
;1=one
;2=two
;3=three
;mirx=mirc
;own=0wn
;!waza!=WWWWWWWAAAAAAZZZZZZZAAAAA !!!
;:cry=:~(
;*r=®
;*c=©
;CS=Counter Strike
;IE=Internet Explorer
;NS=Netscape
;
; Dont forget to remove all ";" ...

  • Sluuut
  • Registratie: Februari 2003
  • Laatst online: 01-09 19:55
Alphega schreef op 11 januari 2004 @ 03:16:
Ik denk dat je een scriptje als deze zoekt:
code:
1
script
Nee, want dan zou het in conflict komen met het echo script... maar bedankt voor je inbreng :) Ik zal die site waar het vandaan komt ook eens bekijken!

57696520646974206c65657374206973206e657264

Pagina: 1