In two words: you can now see your ping to quakelive servers on quakelive.com website.
Features
Locations tab in "Play Online" section: all quakelive servers sorted by ping. Right click Locations tab and click "Refresh Locations" to redo ping measurement of all servers. Last four ping results of a server are displayed as a tooltip to ping value.
Server tooltip is extended with ping information: mouseover interesting server and you will see your ping there. Ping icon is green when ping is
lower than 45 ms, yellow if
lower than 75 ms and red if ping is
more than 75 ms.
Right click your friend in quakelive contact list and select "Send my locations" to send info about your nearest locations. When your friend has the same script and replies with his location info, his script automatically recommends servers based by the minimal ping differences. Servers with ping more than 100 ms are not considered as a recommendation. BTW, if you come up with more efficient server recomendation algorithm, I am open for suggestions.
Also, if your friend does not have qlping installed, he can just write in chat, for example, "UKR 30 ms, GER 50 ms", and when you send him your location info, your qlping script will also calculate recommendations.
Installation
In order to use this script, you have to install small and simple web browser plugin first, which makes UDP requests to servers. This plugin works only on
www.quakelive.com page, other pages cannot access it (made that because of security consideratons). Installation is simple, instead of just userscript you install plugin and userscript.
Userscript link.
Here are installation instructions for various platforms:
Windows
Plugin is installed only for current user, therefore you do not need to have an administrator privileges.
Firefox
Download and run qlPing-Setup.exe. If you have not installed Scriptish or other userscript managing plugin, do it now then restart Firefox. Click "Install" button on userscript page and confirm installation.
QLPrism
Already bundled in version 4.39. Instructions for earlier versions:
Download and run qlPing-Setup.exe. Right click "Install" button of this userscript and copy script URL. Run QLPrism. Click a small "Q" button in the bottom-right corner, select "Tools -> Greasemonkey -> Download User Script...", paste userscript link and hit OK. Restart QLPrism.
Chrome
Download npqlping-win32.crx, open chrome://extensions page and drag downloaded crx-file there. Confirm installation.
Right-click Install button on this userscript page, select "Save as..." and save script, but do not change it's name. Open chrome://extensions page and drag downloaded user.js file there. Confirm installation. Looks like you should do that every time when the new version of userscript is out.
Mac OS
This method works with other browsers too, but quakelive on Mac OS 10.8.4, where I tested it, runs only in Safari. If you need a 32-bit version of plugin, write me.
Safari
Download qlping.plugin-MacOS.zip, unzip it and drag "qlping.plugin" bundle into ~/Library/Internet Plug-Ins folder. Restart your browser.
If you have not installed NinjaKit, do it now, restart Safari, open userscript page, click on "Install" button then confirm installation.
Linux
You chose Linux, so you should already know what to do with all those files :)
npqlping64.so
npqlping32.so
npqlping-linux64.crx
npqlping-linux32.crx
Place .so files into ~/.mozilla/plugins folder. Read userscript and Chrome installation instructions in Windows section, it doesn't differ much.
You can output your nearest locations or redo ping measurement while playing on a server. Press "," to display, "." to change display mode (echo, ping, say_team or say) and "/" to redo ping to all servers.
Add to your config or set in the console (change keys bound as desired):
// attempt to output the player list
bind , "seta _qlping_announce 0; seta _qlping_announce 1;"
// change the output method
bind . "vstr _qlping_output"
// refresh servers ping
bind / "seta _qlping_refresh 0; seta _qlping_refresh 1;"
Set these one time to initialize (comment out if entered into config):
// These track the current output method and position in "cycling" through the methods.
seta _qlping_outputMethod "echo"
seta _qlping_output "vstr _qlping_output1"
Add these to your config:
// These are the output method states.
seta _qlping_output0 "seta _qlping_outputMethod echo; set _qlping_output vstr _qlping_output1; echo ^2[qlping] ^7output method is now ^5echo; print ^2[qlping] ^7output method is now ^5echo ^7(check the console!)"
seta _qlping_output1 "seta _qlping_outputMethod print; set _qlping_output vstr _qlping_output2; print ^2qlping: ^7output method is now ^5print"
seta _qlping_output2 "seta _qlping_outputMethod say_team; set _qlping_output vstr _qlping_output3; print ^2qlping: ^7output method is now ^5say_team"
seta _qlping_output3 "seta _qlping_outputMethod say; set _qlping_output vstr _qlping_output0; print ^2qlping: ^7output method is now ^5say"
SockIt plugin author, I ripped off SockIt sources to make qlping browser plugin.
wn, I copy-paste parts from his scripts everytime when I make my own.
alxch, HOUD, Fliperrr and adem_ for testing.
News / Changelog
New version:
2013-08-12 (1.11)
No need to reinstall plugin, only userscript is updated.
I am terribly sorry for my mistake with autoupdater, and now you have to uninstall older version of QLPing to get rid of a double "Locations" tab and double sending of locations info after updating to this version. You will see instructions for your browser in the first of a double "Locations" tab, or you can do it by yourself.
Autoupdater is finally fixed, will work normally in the future.
To update script in QLPrism, click Scripts -> Script Commands -> QLPing: Enable updates.
Fixed formatting for ping announcements in QLPrism.
Fixed "Locations" tab positioning in QLPrism.
Fixed counter in "Send my locations" procedure.
Fixed coloring and counter in the ingame ping announcer.
Added "Refresh Locations" button in "Locations" tab.
Added "Display scoreboard ping" option. Scoreboard ping may be closer to what you will see at the scoreboard in game and is calculated by formula (actual_ping + 1000/cl_maxpackets/2) ms.
More small fixes.
2013-07-28 (1.0)
No need to reinstall plugin, only userscript is updated.
New location info tab.
Showing pings for every IP address of a location. Still using average values for ping announcements (didn't find much difference between different servers on one location).
Nice formatting for ping announcements on website. Works only for people with installed userscript. People without userscript see that only as text, like in earlier versions.
Website location filter is updated when clicking on location in info tab or in web chat announcement.
Some small fixes.
2013-06-16
First release.