I don't understand what your code shall do:
Code:
public ct_respawn( svIndex[] ) {
if( !climbtimer_on )
return PLUGIN_CONTINUE
new id = svIndex[0]
if( save_respawn[2][id] != 0 ) return PLUGIN_CONTINUE
save_respawn[2][id] = 1
if( climbtimer_no_block )
set_task( 2.0, "ct_no_block", 0, svIndex, 2 )
if(get_user_team(id) == 0 || is_user_alive(id))
return PLUGIN_CONTINUE
#if defined COMPILE_AMX
user_spawn(id)
#else
spawn(id)
#endif
set_task( 0.8, "ct_savty_respawn", 0, svIndex, 2 )
save_respawn[2][id] = 0
return PLUGIN_CONTINUE
}
Did you understood the sence of save_respawn[2][id]? Setting save_respawn[2][id] to 0 on this line will make save_respawn senseless. This will make the respawnbug exploitable again (or make it work more often, I don't know wether it has been eliminated 100%, but I think so, due to my serverlogs).
Concerning the spawn-function: does spawn(id) work on 1.0 or not? If not, why does they still list this function here:
http://www.amxmodx.org/funcwiki.php?go=func&id=127?
@dumb assasin: as I did not wrote this plugin, I did not even noticed this little bug. I do not even know, wether it is a good idea to change this, because I have a thread in my mind, where problems with new registers on mapchange were mentioned. If I remember well, sometimes dynamic registers on mapchange do not work. Thats why I will let the code unchanged. If you know for shure, that you don't want to use checkpoint, you may delete the line before compile