mIRC Home    About    Download    Register    News    Help

Print Thread
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
Hello all! I won't lie to everyone, I thiefed this script from a website using dogpile and google smile Now I see it, and I compare it with another one and... wait, let me just get to the point instead of the story smile

--
Here is a script that handles cuts. If you RP a lot and need a better cut script, this one ROCKS! Only problem, it doesn't preserve colors through the cuts. Below I'm posting both one that handles color preservation, and the one that rocks but doesn't preserve colors. Any and all help will be thanked in cookies and stuff! If you can figure it out, rest assured I have a whole horde of people who'd thank you as well since no REAL good cut script that does everything exists as far as I know!
--

THIS SCRIPT MAINTAINS COLORS - but does an awful job at actually showing posts. The first post shows everything, and if it goes beyond two posts it does nada. Part one of my all-elusive suepr-script

======
on 1:input:*: {
%textcut = 21 | %actioncut = 26 | %cutat = 425 | %nicklen = $len($$me) | %length = $len($1-)
if ($left($1,1) = / ) { %length = %length - $len($1)
; Next line might need additional commands ?
if ($1 = /me ) || ($1 = /action ) { %length = %length + 7 | %textcut = %actioncut }
; Prevent cut for "unseen" commands eg a long /alias (may need extra commands?)
elseif ($1 != /say ) { goto end }
}
%cutit = %length + %nicklen
if (%cutit > %cutat) { %cutlen = %cutit - %cutat | %word = $0 | inc %word | %cuttext = ""
:loop
dec %word
if (%word > 0) && ($len(%cuttext) < %cutlen) { %ins = $gettok($1-,%word,32) | %cuttext = $instok(%cuttext,%ins,1,32) | goto loop }
%lastcolour = $null | %leftlen = 0 - $len(%cuttext) | %lefttext = $left($1-,%leftlen)
:colour
%lastcolourn = $pos(%lefttext,,0)
if ( %lastcolourn > 0 ) { %lastcolourp = $pos(%lefttext,,%lastcolourn) | %lastcolour = $mid(%lefttext,%lastcolourp,6) | %comma = ,
if ( $pos(%lastcolour,%comma,0) != 1) { %lastcolour = $left(%lastcolour,3) }
elseif ( $pos(%lastcolour,%comma,1) != 3 ) && ( $pos(%lastcolour,%comma,1) != 4) { %lastcolour = $left(%lastcolour,3) }
:colloop
if ($mid(%lastcolour,2,1) !isnum) { %lastcolour = $right(%textcut,2) }
if ( $right(%lastcolour,1) !isnum ) { %leng = $len(%lastcolour) | dec %leng | %lastcolour = $left(%lastcolour, %leng)
if ($len(%lastcolour) > 1) { goto colloop }
else ( dec %lastcolourp | %lefttext = $left(%lefttext,%lastcolourp) | goto colour }
}
/timerCut 1 1 /say %textcut $+ %lastcolour %cuttext
{
:end
}
}

=====

THIS SCRIPT HANDLES CUTS LIKE A GOD! This one will show you locally what others will see, and will continue on to three lines. Since mIRC has its limitation, the third cut is usually the final cut, and will not be neat about it. I honestly don't care about that, since I can just continue on a-posting.

====

on *:input:*: {
if ( ( $left($1,1) != / ) || ( $1 == /me ) ) {
var %next = ->
var %continue = <-
var %done = <>
var %more =
var %textlen = $len($1-)
if (%textlen > 400) {
var %pos = 1
var %text = $mid($1-, %pos, 400)
var %firsttime = 1
while ( %text != $null ) {
if ( $len($deltok(%text, -1, 32)) < 370 ) {
%text = $left(%text, 370)
inc %pos 370
}
else {
%text = $deltok(%text,-1,32)
inc %pos $len(%text)
inc %pos
}
var %outtext = %text
%text = $mid($1-, %pos, 400)
if (%firsttime == 1) {
if ($gettok(%outtext, 1, 32) == /me) {
%outtext %next
}
else {
say %outtext %next
}
%firsttime = 0;
}
else {
if (%text != $null) {
say %continue %outtext %next
}
else {
if (%textlen <= 999) {
say %continue %outtext %done
}
else {
say %continue %outtext %more
}
}
}
}
halt
}

=====

Again, any and all help will be appreciated!

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
What does this "Cut" do?


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
Ok... my apologies wink

A 'cut' script does pretty much exactly what it says. When you are using mIRC, you will occasionally type something that goes on beyond the buffer so other people won't see it. This is also limited by any addons they might be using. I say this since people using xchat and mirc and polaris and invision all claim different lengths that are acceptable for whatever reason.

Enter a Cut script. This says, "Ok, if the line is beyond x many characters, break it up into more manageable pieces and spread it out over more than one line!"

Now, at the time of this posting, I've thought up a workaround until the above can be merged together into something a little better. I'm no coder, but eh...

Where it has the -> and <- lines, since I use purple (closest to the /me), I just put ctrl-k-6. It also preserves any color codes within the lines itself, it seems, but otherwise... below is my "modified" script of the above super cut script. It will basically leave everything purple and also seems to like to transfer the color codes of stuff within the line itself (tested with a k-16 for grey/speech) Please note I'm only including the top part, which is where I made my edits and is not the whole script.

on *:input:*: {
if ( ( $left($1,1) != / ) || ( $1 == /me ) ) {
var %next = 12->
var %continue = 12<-6
var %done = 12<>
var %more =
var %textlen = $len($1-)
if (%textlen > 400) {

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
at the bottom of the second script you could add the color there basically but if you are talking in "purple" and using this script this means you have 2 on input events which in theory is usually not a good idea due to conflict

The location of the color could be after the say commands

youll see what i mean at the bottom of the script

say colorhere $+ %var %var %var


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
As in my attempt to do it manually above, that was my thinking. Sadly, I don't know enough about coding to actually wrap my head around it. Also, while your idea is also pretty on-point, it's the same as mine and isn't "on the fly".

*edit*
Not sure what you mean by the conflict - as far as I can tell, the script I'm using (not the color one, the big messy one) doesn't really care that I have the color codes since I suppose it just looks as it as the raw text. The bleeding of the color afterwards is a side-effect that does what I want it to do without it being an actual side effect, but it's hard-coded. It reminds me a lot of html color coding where if you don't either change the color to default or close it, it just bleeds onto your entire document after a style change or whatont.

In the end, to simplify, just looking for something to read the end of its input set (one full cut) and apply it to the next one.
*edit*

Ideally, it wouldn't matter what color what what, the script being able to do what #2 does and simply run with it. For me, it was just a matter of changing the precursor in the first's posting ability for the -> and -< and <>.

Ah well... I have fixed it well enough for my tastes, if someone can think of a way to make it universal, that'd be great smile If not, the scores of RPers I know already are thankful since they just have to add the color code of their choice and remember to work with it! But if anyone can think of a way to do it so no editing is needed and it just does as it does, wonderous!

And just to clarify, this is how it would look if I were to use my limited knowledge of how programming works. This is assuming that the script is actually used (a cut happened)

when cut=true, then get.color(at.time.of.cut);
put [color(at.time.of.cut)]
put (next.part.of.cut)
::then again, assuming another cut happened
when cut=still.true, then get.color(at.time.of.cut;
put [color(at.time.of.cut)]
put (final.part.of.cut)

After some tinkering, I found that mIRC has a maximum number of characters before it says "You're a windbag!" and just goes ahead and posts what you have. Now the question is how to tell it to figure out what the breaks are (three posts, two breaks), and what the last color used was and reapply it to the next post.

Three is the number of the counting, and the number of the counting shall be three... who knew!

Last edited by GrimsonSR; 09/10/06 06:54 AM.
Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Code:
on &amp;*:input:#: {
  var %letters = [color:red]999[/color]
  if ($left($1,1) == / &amp;&amp; $1 != /me &amp;&amp; $1 != /say &amp;&amp; $1 != /msg) { $1- | halt }
  elseif ($len($1-) &gt; %letters) {
    var %original = $1-
    var %command = msg $chan
    if ($left($1,1) == $chr(3)) { var %original.color = $iif($mid($1,2,2) isnum,$mid($1,1,3),$mid($1,1,2)) }
    if ($1 == /me) { dec %letters $len($me) | var %original = $2- | var %command = me | if ($left($2,1) == $chr(3)) { var %original.color = $iif($mid($2,2,2) isnum,$mid($2,1,3),$mid($2,1,2)) } }
    elseif ($1 == /say) { var %original = $2- | var %command = say | if ($left($2,1) == $chr(3)) { var %original.color = $iif($mid($2,2,2) isnum,$mid($2,1,3),$mid($2,1,2)) } }
    elseif ($1 == /msg) { var %original = $3- | var %command = msg $2 | if ($left($3,1) == $chr(3)) { var %original.color = $iif($mid($3,2,2) isnum,$mid($3,1,3),$mid($3,1,2)) } }
    var %loc = 1
    var %original.len $len(%original)
    while (%loc &lt;= %original.len) {
      var %text = $mid(%original,%loc,%letters)
      if ($len(%text) &gt;= %letters) { var %text = $deltok($mid(%original,%loc,%letters),-1,32) }
      if (%loc == 1) { %command %text -&gt; | dec %original.len }
      elseif ($calc(%loc + $len(%text)) &lt; $len(%original)) { %command %original.color $+ &lt;- %text -&gt; | dec %original.len }
      else { %command %original.color $+ &lt;- %text &lt;&gt; }
      var %loc = $calc(%loc + $len(%text) + 1)
    }
    halt
  }
}


Change the red number to a number that is about 10 smaller than the limit of text you can type on the network you use. I believe there is a way to get this using an identifier, but I don't remember how. So, just figure out what the maximum line length is and subtract about 10 and you should be fine. Usually, you'll be looking at about 400 or less, I believe.

This will preserve colors and cut text properly. It will also treat / commands correctly.

If you run into problems, let me know.


Invision Support
#Invision on irc.irchighway.net
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
Script tested and checked! So far, here's what I've learned:

1) NEVER try to test a script when you've modified your own stuff. I had glitches for days but a fresh install cleared it up (duplication of the first line)

2) It holds colors! However, if a color code is used near a cut, it won't transfer to the next cut. Looks like it can only hold one color per cut. For instance:

(purple)blahblahblah (green)I like traffic lights! (purple)blahblahblah

If the split happens after "like", "traffic lights!" will be painted purple. I say this with a tongue-in-cheek humor but... it's not smart enough to know to continue checking through the line. (too bad I"m not smart enough to code it!0

If I had to guess, it's as if it sees the first color code and stickies that into its own little holding pen. Ideally, it wouldn't do that. It would go through the text, see any color codes, and take them one at a time and shove 'em into the box. That box would have only one value. As it goes through the lines for each one, it would pick out what it needs to do color-wise and then paint it properly.

BUT, your code works! You can see what I mean by typing something out. I used the following bit of text, which goes to three lines.

===6I once knew this guy named Raimus2 who helped me make a cut script. He was a kind fellow, watching me as I did my silly stuff and attempted to figure out stupid stuff like maxlength and then incorporate that into a script that would function perfectly for my everyday scripting needs. But then there was the question of the symbols for cutting as well as actually keeping the color. So you see, I have to do all this work and it's really frustrating! I wish that one day things would be simple, but then again if that were the case the universe would explode and my feet would turn into rabbits. Well, ok, I don't know about the rabbits part but still, it would be really interesting to see, don't you think? I do! Thinking is fun, except when it gets you into trouble, then it just plain sucks... and certainly not in a good way! If it was a good way, maybe I wouldn't be so digruntled!!!
===

I used an initial color-code of 6 (purple), and it painted the whole thing purple, correct. It doesn't show me the whole of my post for the first part, correct. It cuts to three lines and doesn't repeat anything for wasted text, correct. BUT... if you color "So you see, I have to do all this work and it's really frustrating!" something else, say, blue, then resume purple for everything afterwards, it just goes on painting stuff purple.

Also, as an aside <I see it in the code and I can do this manually>, it paints the arrows whatever color is in the initial color snag.

In short, this works. I can manually change two lines in it to paint the arrows a static color which is no issue. And colors used will stick within the post, as long as it doesn't go beyond a cut, then it uses %original.color.

If only there was a %last.color.used variable built in smile

(I calculated it to 441 for starchat, but 400 is a pretty number. If you're curious, I used 123456789a as my base 10, through z, then A-Z again - post the whole string through Z in a window without a cut script and ask someone where it stops - stopped at R1. I plan on testing other servers to see if their length is the same - BUT... four ircopers, none knew how to find maxlength! Shocking!)

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Ok, I didn't realize you wanted to have multiple colors in the line copied over. Based on what you were doing, I assumed (yeah, that's a bad idea) that each RP'er would use their own color for their text so you can easily distinguish between each person's text. That is why I only had it check the original coloring.

I will see about editing it. I don't have time atm, but it will not really be very difficult to do.


Invision Support
#Invision on irc.irchighway.net
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
It's an odd thing, to be sure... since if you don't rp it seems real foreign smile Here's an example! Cut/paste and color to taste. All non-words would be purple (like in /me, my preference) though some people like blue and whatnot. Text is almost always grey, some people use black, etc. But yeah, where you see actual spoken word, color it.

If you can't, it's ok smile I'll be -glad- to test it for you! Just wanted to give you an example of what it would be used for!
===

He looked at the screen in mild wonderment, the letters and numbers of programming jumping out with all the glory and Divine quizzical nature of all the Bibles of the world mixed together. "Now that's an interesting way to code something." A thumbnail was bitten on idly as the multitude of variables jumped here and there, dancing upon the HTML-coded website like some really unhappy hummingbird. "So all these people are so very nice in trying to help me out! And the cool thing is that if this can get figured out, a cut script at least 100 people would use... would be used!" A thought, brows knotting as that comment made little sense with the redundancy. Shrugging, he went about his daily routine of working and cleaning and going out on jobs because, while he wasn't a coder, he -was- a PC guru capable of plugging in AGP cards faster than a speeding bullet!

===

Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
Side-note...

While actually using the script in a test setting... it looks like when a post is way over its limit, it just doesn't work at all. Don't get me wrong, not complaining, just commenting that if linelength exceeds a certain length... well, here's the post used that failed to cut at all, with the errors

* /set: line too long (line 13, custom.mrc)
* /msg: line too long (line 539, themes.mrc)

The line from themes.mrc (using ircn) is:

if ($chan ischan) $iif(!$show,.) $+ msg $chan $1-

the actual bit it's in is

alias say {
if ($chan ischan) $iif(!$show,.) $+ msg $chan $1-
else $iif(!$show,.) $+ say $1-

I'm pretty sure it has nothing to do with anything, but my guess is that in the modified script, if it's way too big, it just gives up. I don't mind if it's way over its limit and it just posts what it can in proper cut since it does an EXCELLENT thing by showing you what others see so it's easy to repost as needed... but giving up... meh!
====
As the guards pull back the obviously aggressive one, the gloved hand holding the needle descended halfway - though both needle and hand remained in a striking posture. A cant of the hooded head was given, more words uttered. Annoyance? Guards... a quick glance upwards showed the carriage perched upon a branch before returning to the fae. Robes, cane, ornate carriage... royalty. Perhaps Myrken was taken over by the littlings? No small surprise, demon spawn the size of matchbooks always were trouble. A bow of the head, an attempt to remove all wonder from both himself and the equipment by appearing, well... dumb. "Fa... fa... fa... fa... fa... " The copper tubing was given a bat of the hand that once was held upwards, the needle-holding hand obsconded behind his back as faux playing with the gear was made. *BANG* went the copper tubing into the calcified symbol, fragments of delicate wire flying haphazardly about his person.
====

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Oh, yeah. I forgot about the length limit in variables. I'll have to switch it over to a bvar instead. I'll get this set up in a little while. The coloring will also be set up at that time.


Invision Support
#Invision on irc.irchighway.net
Joined: Oct 2006
Posts: 7
G
Nutrimatic drinks dispenser
OP Offline
Nutrimatic drinks dispenser
G
Joined: Oct 2006
Posts: 7
Take your time! I actually ran all this past an old rp friend of mine... she agrees, hordes of people will praise your name if all this madness can be done smile

There are only a handful of cut scripts, some do either one or two parts of what my goal is. To have 'em all? Hell, write yourself into the script with email and stuff so the fanmail can flood in smile

As an aside, cut scripts are handed down from person to person nowadays - doing a search for 'cut script irc' reveals pretty bad ones, or ones designed for certain networks. So really, no joke smile

From a friend on starchat, for instance:

<Carnath-Emory> LOL.. thank goodness. If he can make one that's easy to use and works nicely, folks will *worship*.

So yeah, take your tiiiime... let me bust out the ladies and the beer!

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Designed for mIRC 6.2. It should work in any mIRC version that accept $v1 (I think that became a valid identifier sometime in the 6.1x series). It won't work in anything prior to the introduction of $v1. I hope that's not a problem. I could set it to work with all, if you need it to.

Code:
on &amp;*:input:#: {
  var %letters = [color:red]999[/color]
  if ($left($1,1) == / &amp;&amp; !$istok(//me /me //say /say //msg /msg,$1,32)) { return }
  elseif ($len($1-) &gt; %letters) {
    if ($len($1-) &gt; 937) { echo -a Line too long. mIRC has a limit of 937 characters for inputs. | halt }
    var %original = $1-
    var %command = /msg $chan
    if ($1 == /me || $1 == //me) { dec %letters $len($me) | var %original = $2- | var %command = $1 }
    elseif ($1 == /say || $1 == //say) { var %original = $2- | var %command = $1 }
    elseif ($1 == /msg || $1 == //msg) { var %original = $3- | var %command = $1 $2 }
    var %loc = 1
    var %original.len $len(%original)
    while (%loc &lt;= %original.len) {
      var %text = $mid(%original,%loc,%letters)
      if ($len(%text) &gt;= %letters) { var %text = $deltok($mid(%original,%loc,%letters),-1,32) }
      if (%loc == 1) { write cut.tmp %command %text -&gt; | dec %original.len }
      elseif ($calc(%loc + $len(%text)) &lt; $len(%original)) { write cut.tmp %command &lt;- %color $+ %bold $+ %underline $+ %text -&gt; | dec %original.len }
      else { write cut.tmp %command &lt;- %color $+ %bold $+ %underline $+ %text &lt;&gt; }
      var %loc = $calc(%loc + $len(%text) + 1)
      var %end = $gettok(%text,$gettok(%text,0,15),15)
      if ($left($gettok(%end,$gettok(%end,0,3),3),2) isnum) { var %color =  $+ $v1 }
      elseif ($left($gettok(%end,$gettok(%end,0,3),3),1) isnum) { var %color =  $+ $v1 }
      if ($calc($gettok(%end,0,2) % 2) == 0) { var %bold =  }
      if ($calc($gettok(%end,0,31) % 2) == 0) { var %underline =  }
      if ($gettok(%end,0,2) == 1 &amp;&amp; $chr(15) isin %text) { var %bold = $null }
      if ($gettok(%end,0,3) == 1 &amp;&amp; $chr(15) isin %text) { var %color = $null }
      if ($gettok(%end,0,31) == 1 &amp;&amp; $chr(15) isin %text) { var %underline = $null }
    }
    .play -a play.cut cut.tmp [color:blue]1000[/color]
    .remove cut.tmp
    halt
  }
}

alias -l play.cut {
[color:green]  if (msg isin $2) { var %display = $3 $timestamp &lt; $+ $nick($3,$me).pnick $+ &gt; $iif($left($2,2) == //,$($4-,2),$4-) }
  elseif (me isin $2) { var %display = -a  $+ $color(action) $+ $timestamp * $nick($chan,$me).pnick $iif($left($2,2) == //,$($3-,2),$3-) }
  echo %display[/color]
  $iif($left($2,2) == //,$($2-,2),$2-)
}


Ok, here is the deal.

* Colors and bold and underline and Ctrl-O and Ctrl-K without a number after it all work properly.

* Really large lines will echo an error message instead of just giving you a default error. Basically, mIRC has a limit on how much can be handled by commands of 937 characters. Although binary variables can store more information, you couldn't put more characters into one at one time (ie. from the edit line) because the /bset command can't handle more than the 937 limit at once. So, you will have to avoid anything longer than that. I'm not sure if there is a way around this other than typing it into a text file first and then reading it from there.

* I've set it to store the information in a tmp file and then play it back at a slower speed (set it with the blue number ... 1000 = 1sec delay between lines). I did this to prevent you from being flooded off a server. If you don't want a delay, just set the blue number to 0.

* To prevent seeing "* Playing 'cut.tmp' to #channel with 1000ms delay" and "* Playback of 'cut.tmp' complete" each time you type something, I've included the GREEN text. It isn't really as good as seeing what the others see, but will be close. The actions will usually be the ones that won't display to you exactly as shown to others. If you don't mind seeing the playback information, you can remove the GREEN text and remove the period from in front of ".play -a play.cut cut.tmp 1000". If that doesn't make sense, let me know.

Your comments about this being a useful script made me decide that I will make a "full" version of this and release it on my script site. It will include a dialog setup screen to allow you to easily set the delay, the line length limit, and the next/previous/end "brackets" if people don't want to use <- and -> and <> for those. It will probably also include the ability to check for updates from the script. I usually like to include that ability as I have had people ask me why X script doesn't work and it is because they managed to get an old version that isn't meant to work anymore (this happens often on socket scripts, like my weather script). If you want the link to my script site so you can watch for the "full" version, just PM me. I'm not sure if I should spam my site on the forum. wink

If you have problems, let me know.

Here is the test line I did. Just to make it easy, I set the line limit to 30 so I didn't have to test a really large amount of text.

Quote:
04Testing these scripts 07can 03be fun, but annoying as well. 10They don't always work as you would expect.


Try it by just typing it, and by using /msg #channel, and by using /say, and by using /me to see how it works in all situations. As a note, /me will cut at a different spot because I believe that the line limit include the bot name when using /me and not any other time, so I subtract the length of the nick when calculating when to cut the text.

As a final note, if you try this with a small line limit number (red text) and input a word that is longer than that number, it will loop until you ctrl-break out of it. I didn't bother inserting any kind of protection for that as you should have the limit set to around 400 normally and I don't expect you to type 400 characters without a space under normal operation of the script. laugh

Oh, and if you use Ctrl-O followed directly by another ctrl character without a space or some text between them, it will not display correctly. Try it to see the results. Normally, this shouldn't be an issue.

Questions, comments... just ask. And, again, if you want the site, PM me.

*EDIT* The alias was editing thanks to help so that it evaluates things correctly.

Last edited by Riamus2; 11/10/06 03:43 AM.

Invision Support
#Invision on irc.irchighway.net
Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
You can now get this script in its entirety from http://www.KakkoiiTranslations.net/mircscripts/

Enjoy.


Invision Support
#Invision on irc.irchighway.net

Link Copied to Clipboard