WPM Finder

Platform:  mIRC
Published  Mar 29, 2008
Updated  Dec 10, 2008
Simple WPM script. Type /wpm in #mywpm to start. I may let you change the channel later on, since multiple people might be in one channel and it could get irritating!
NOTE: You MUST load the script !OR! type /loadwpm before you start!

For somebody to see what your highest/current WPM scores are, they must type !wpm

For you to show a channel what your highest/current WPM scores are, type /wpmcheck in a channel



Updates:

Saturday, March 29, 2008
3:25AM EST
You can now type /wpmcheck [channel] to display to a different channel than your active one.

3:33AM EST
You now must goto #[your nick]wpm to see your WPM instead of #mywpm.
Though you can also type /mywpm to switch this between the two.

You also can now type /loadwpm instead of having to actually load the script
Script also slighly shortened

4:53AM EST
The #[your nick]wpm feature now works correctly.

5:02AM EST
Fixed problem where it tends to erase your incorrect words and will not display how many you got incorrect, or which ones.

Monday, March 31, 2008
3:19PM EST
Timers now silenced (thanks to comments)

Monday, April 07, 2008
6:49AM EST
Fixed a few spelling errors
Deleted some unneeded parts of the script
Made /wpmcheck work, instead of you having to type /wpmshow. You now can type either.

Friday, April 11, 2008.
3:44AM EST
Timers actually silenced now..shouldve been earlier, not sure why they werent. Thanks to comments (again).

Wednesday, July 09, 2008.
8:39AM EST
Script now works properly, as before it would start tracking your time BEFORE you were allowed to type!
8:47AM EST
Spelling error fixed.

Wednesday, December 10, 2008.
3:44PM EST
Long time no update. Just cut like 50 lines of code in 'alias wpmz'. I did this by eye and cannot test it right now, so please tell me if it doesn't work. on *:load:{
wpmload
echo -a WPM Script loaded! Type "wpm" in any channel to start!
halt
}
alias loadwpm {
wpmload
echo -a WPM Script loaded! Type "wpm" in any channel to start!
halt
}
alias -l wpmload {
unset %wpm*
set %wpm1 You are about to embark on a new career that is both challenging and rewarding.
set %wpm2 Your ability to type as fast as possible will be an important aspect of your success.
set %wpm3 A good way to help ensure this success is to make the keyboard your friend.
set %wpm4 You will spend many long hours in the future, just you and your keyboard, and for these hours to be tolerable they have to be enjoyable.
set %wpm5 Consider your keyboard an invaluable tool that requires persistence and patience to master.
set %wpm6 As a vitally important tool of your trade it needs to be treated with respect; don't make it the recipient of your frustrations.
set %wpm7 The more at ease you are with your keyboard, the more successful you will be.
set %wpm0 %wpm1 %wpm2 %wpm3 %wpm4 %wpm5 %wpm6 %wpm7
set %mywpm #mywpm
}
alias wpma {
set %wpm ( $+ $time $+ ) < $+ 10WPM Bot>
echo -a %wpm This script will test you on your WPM based on an average of 5 letters per word.
echo -a %wpm To begin, simply type "Begin" in this channel and follow further directions.
halt
}
on *:input:#:{
set %wpmsay $1-
if ($active == %mywpm) { wpmb %wpmsay }
set %wpm ( $+ $time $+ ) < $+ 10WPM Bot>
if ($1- == wpm) && ($active != %mywpm) {
if ($active != %mywpm) {
echo -a %wpm You must be in %mywpm to use this script. Type /mywpm to switch this.
}
}
}
alias wpmb {
set %wpm ( $+ $time $+ ) < $+ 10WPM Bot>
if ($1- == wpm) {
echo -a %wpm Starting script...
wpmunsets
.timer 01 01 wpma
halt
}
if ($1- == Begin) {
echo -a %wpm To see instructions, type Instruct. To begin the test, type Go.
halt
}
if ($1- == Instruct) {
echo -a %wpm This will show a series of words to say in @wpm. You must make the channels smaller so you can see what you need to type.
echo -a %wpm To type what is shown, you must hit enter after every sentence to confirm how long it has taken you.
echo -a %wpm To begin the test, type Go.
halt
}
if ($1- == Go) {
echo -a %wpm Starting test...
echo -a %wpm I will give you 20 seconds to rearrange your windows after @wpm pops up.
wpmstart
halt
}
wpmz %wpmsay
}
alias wpmstart {
window @wpm
echo @wpm %wpm %wpm0
set %wpmtotal 0
set %wpminc 0
set %wpminc2 0
unset %wpmbad*
set %wpmbad 0
.timerwpm3 1 15 echo -a %wpm 5 Seconds left.
.timerwpm2 1 20 echo -a %wpm Timer is now starting. Start typing now. Feel free to press enter after every sentence or only at the end.
.timerwpm1 1 20 set %wpmcount 0
.timerwpm4 1 20 wpmstart2
}
alias wpmstart2 {
.timerwpm 0 0.01 inc %wpmtotal 0.01
}
alias wpmz {
if (%wpmcount == $null) {
echo -a %wpm Please wait until I say the test starts before you start typing!
halt
}
if (pie == bad) {
:again1
inc %wpminc
if ($gettok(%wpm [ $+ [ %wpminc2 ] $+ ] ,%wpminc,32) != $gettok(%wpmsay,%wpminc,32)) {
inc %wpmbad 1
set %wpmbad [ $+ [ %wpminc2 ] $+ ] - [ $+ [ %wpminc ] ] $gettok(%wpmsay,%wpminc,32)
}
if ($gettok(%wpm [ $+ [ %wpminc2 ] $+ ] ,$calc(%wpminc + 1),32) == $null) {
goto next1
}
goto again1
:next1
inc %wpmcount
set %wpminc 0
inc %wpminc2
halt
}
if (%wpmcount > 6) || (%wpmcount < 0) {
goto end
}
:again
inc %wpminc
if ($gettok(%wpm [ $+ [ $calc(%wpmcount + 1) ] ],%wpminc,32) != $gettok(%wpmsay,%wpminc,32)) {
inc %wpmbad 1
set %wpmbad [ $+ [ $calc(%wpmcount + 1) ] ]- [ $+ [ %wpminc ] ] $gettok(%wpmsay,%wpminc,32)
}
if ($gettok(%wpm [ $+ [ $calc(%wpmcount + 1) ] ],$calc(%wpminc + 1),32) == $null) {
goto next
}
goto again
:next
inc %wpmcount
set %wpminc 0
halt
:end
}
alias -l wpmend {
echo -a %wpm Test finished.
echo -a %wpm Please wait while I find your WPM...
.timer 01 03 wpmend2
}
alias -l wpmend2 {
.timerwpm off
window @wpm
set %wpmminute $calc((%wpmtotal + %wpmbad) / 60)
set %wpmz $calc($len(%wpm0) / %wpmminute /5)
set %wpmminute2 $calc(%wpmtotal / 60)
set %wpmz2 $calc($len(%wpm0) / %wpmminute2 /5)
wpmstatus
}
alias -l wpmstatus {
wpmunsets
window @wpmstatus
echo @wpmstatus %wpm Here you will see your WPM results.
echo @wpmstatus %wpm Time taken: %wpmtotal $+ secs
if (%wpmbad < %wpmbadb) || (%wpmbadb == $null) {
echo @wpmstatus %wpm New Record! Incorrect words: %wpmbad
set %wpmbadb %wpmbad
}
if (%wpmbad > %wpmbadb) {
echo @wpmstatus %wpm Incorrect words: %wpmbad
}
if (%wpmz2 > %wpmz2b) || (%wpmz2b == $null) {
echo @wpmstatus %wpm New Record! WPM (no deduction): %wpmz2
set %wpmz2b %wpmz2
goto next
}
if (%wpmz2 <= %wpmz2b) {
echo @wpmstatus %wpm WPM (no deduction): %wpmz2
}
:next
if (%wpmz > %wpmzb) || (%wpmzb == $null) {
echo @wpmstatus %wpm New Record! WPM (deduction): %wpmz
set %wpmzb %wpmz
goto next2
}
if (%wpmz <= %wpmzb) {
echo @wpmstatus %wpm WPM (deduction): %wpmz
}
:next2
wpmcheck
echo @wpmstatus %wpm Words wrong in sections:
echo @wpmstatus %wpm Section: Amount : Words wrong
if (%wpmbad1) /echo @wpmstatus %wpm One: %wpmbad1 : %wpmbada1
if (%wpmbad2) /echo @wpmstatus %wpm Two: %wpmbad2 : %wpmbada2
if (%wpmbad3) /echo @wpmstatus %wpm Three: %wpmbad3 : %wpmbada3
if (%wpmbad4) /echo @wpmstatus %wpm Four: %wpmbad4 : %wpmbada4
if (%wpmbad5) /echo @wpmstatus %wpm Five: %wpmbad5 : %wpmbada5
if (%wpmbad6) /echo @wpmstatus %wpm Six: %wpmbad6 : %wpmbada6
if (%wpmbad7) /echo @wpmstatus %wpm Seven: %wpmbad7 : %wpmbada7
echo @wpmstatus %wpm To show these results to somebody, simply type:
echo @wpmstatus %wpm /wpmshow
}
alias wpmcheck {
wpmshow $1-
}
alias wpmshow {
if ($1 == $null) {
msg $active 11My WPM Scores:12 WPM (no deduction): %wpmz2 11|12 WPM (deduction): %wpmz 11|12 Words wrong: %wpmbad
msg $active 11Best Scores:12 WPM (no deduction): %wpmz2b 11|12 WPM (deduction): %wpmzb 11|12 Words wrong: %wpmbadb
halt
}
msg $1 11My WPM Scores:12 WPM (no deduction): %wpmz2 11|12 WPM (deduction): %wpmz 11|12 Words wrong: %wpmbad
msg $1 11Best Scores:12 WPM (no deduction): %wpmz2b 11|12 WPM (deduction): %wpmzb 11|12 Words wrong: %wpmbadb
halt
}
on *:text:!wpm*:#:{
.notice $nick 11My WPM Scores:12 WPM (no deduction): %wpmz2 11|12 WPM (deduction): %wpmz 11|12 Words wrong: %wpmbad
.notice $nick 11Best Scores:12 WPM (no deduction): %wpmz2b 11|12 WPM (deduction): %wpmzb 11|12 Words wrong: %wpmbadb
}
alias mywpm {
set %blah $chr(35) $+ $me $+ wpm
if (%mywpm != #mywpm) { set %mywpm #mywpm | goto mywpm }
if (%mywpm == #mywpm) { set %mywpm %blah | goto mywpm }
:mywpm
echo -a %wpm You now must join %mywpm to use Peach's WPM script.
halt
}
alias -l wpmcheck {
set %wpminc -1
:next
inc %wpminc
set %wpminc2 -1
if (%wpminc > 7) { goto end }
:next2
inc %wpminc2
if (%wpmbad [ $+ [ %wpminc ] $+ ] - [ $+ [ %wpminc2 ] ] != $null) {
inc %wpmbad [ $+ [ %wpminc ] ]
if (%wpmbada [ $+ [ %wpminc ] ]) /set %wpmbada [ $+ [ %wpminc ] ] %wpmbad [ $+ [ %wpminc ] $+ ] - [ $+ [ %wpminc2 ] ] $+ , %wpmbada [ $+ [ %wpminc ] ]
if (!%wpmbada [ $+ [ %wpminc ] ]) /set %wpmbada [ $+ [ %wpminc ] ] %wpmbad [ $+ [ %wpminc ] $+ ] - [ $+ [ %wpminc2 ] ]
}
if (%wpminc2 > $gettok(%wpm [ $+ [ %wpminc ] ],0,32)) { goto next }
goto next2
:end
}
alias -l wpmunsets {
; unset %wpmbad*
}

Comments

Sign in to comment.
vegeto079   -  Apr 11, 2008
Fixed...again. Not sure why they weren\'t silenced when I had done it before (possibly it didnt save?), but they are now.
 Respond  
HoNdAx707   -  Apr 07, 2008
you didnt silence the timers...

Code

 

thats how you would do it
 Respond  
vegeto079   -  Mar 31, 2008
Fixed, thanks.
 Respond  
jonesy44   -  Mar 30, 2008
add a \".\" to the start: .timer x y /bla
 Respond  
vegeto079   -  Mar 29, 2008
how do i do that >.<?
 Respond  
napa182   -  Mar 29, 2008
you should really silence ur timers.
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.