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*
}