Awesome work Hawk, but I'd like to share some personal beliefs and preferences:
I believe Pawn is the kind of language that needs HN the most. Not having explicit typing makes it impossible to people not familiar with the code to find out what a cell actually holds without reading through a chunk of it. That information should be present in the variable itself, not in how it's used.
And as there are no pointers in Pawn, I prefer to use the word 'handle', but both are perfectly fine as far as you're consistent in your code.
Also, I prefer to include type prefixes even in global vars:
g_iUseCount, g_szWebsite, etc
2 prefixes that you might see in some code (including mine), not included in your post:
h for handles: Handle:hSQLConnection
v for vectors: Float:vPlayerOrigin[3]
And finally, I use the 'doxygen style' to document functions possibly used a lot, or that may interest other authors in case there is a sub-plugin system or anything like that:
PHP Code:
/**
* Print command activity.
* @param id Calling admin's id
* @param key[] Language key
* @param any:... Arguments to the format function (w/out the id/lang key)
* @return True on success, False on fail
**/
stock UTIL_PrintActivity(const id, const szLangKey[],any:...)
__________________