I've been helping a bit in the development of the WC3.net plugin (plan.los a.k.a. Opfer and kenterfie - the HLSW developer were the main coders) which based its code on WC3:TFT (of course with giving due credit to its creators), but added some tweaks and most important of all a central XP Server architecture with a secure scoket connection. But enough about WC3.net.
The thing is we realized that the way the mole works is a bit stupid. You spawn with the other team, they see you on the radar and wonderful - you kill one guy or so, get killed yourself and if you aren't a Warden the round is over for you and your target 0.5 seconds after the end of the freezetime.
We found an easy solution for this problem. Since moles are supposed to INFILTRATE the enemy team the mole-player would be teleported to the other team's spawn 5 seconds after the end of the Freezetime.
You wouldn't believe how cool this little modification was.
First of all the enemy team would've moved away from the spawn a bit, so they couldn't detect the mole that fast.
Second of all the mole player would be able to move freely and doge enemy shots if necessary.
Third of all the enemies would get their chance to avoid the mole as well - they could wait the 5 seconds at the spawn and while this would delay the arrival of the enemy team at crucial chokepoints on the map (which is a good thing) it would also ensure that they can move freely and take the mole by surprise.
I would REALLY love to see this simple modification included in the main plugin.
Code snippet from our version (I realize, that WC3:TFT has undergone some major changes since then - I appreciate e.g. how all the code was cleaned up and provided with comments):
Code: Select all
if (becomemole[id] && !spawning[id]){
becomemole[id]=false
set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 2)
if (player_lang[id]==1){
client_print(id,print_chat,"[%s] Your Mole will be activated 5 Seconds after Freezetime !",WC3NET_VERSION)
show_hudmessage(id,"Your Mole will be activated 5 Seconds after Freezetime !")
}else if (player_lang[id]==2){
client_print(id,print_chat,"[%s] Dein Maulwurf wird 5 Sekunden nach der Freezetime aktiviert !",WC3NET_VERSION)
show_hudmessage(id,"Dein Maulwurf wird 5 Sekunden nach der Freezetime aktiviert !")
}
set_task(get_cvar_num("mp_freezetime")+5.0,"check_spot",id+12,parm,2) // Here's the part we've changed.
}else if (!becomemole[id]){
changeskin(id,1)
}
I will post the sources and our old plugin in another thread soon. I will do the same thing on the Allied Modders forums.
Our efforts could be easily incorporated in other plugins with some modifications and it would be really, really sad if so much code would be wasted.