First of all I would appreciate it if you actually posted constructive criticism instead of just complaining. The previous issue you complained about before was a client bug that I had obviously no control over and had to figure out myself because you did not provide me with any useful information and then had to talk to a client developer. I agree such issues with basic things like worldhopping shouldnt happen, but client bugs arent the scripters responsibility.
About your current "bug report": there is no situation in which the script should lose the cannon if its allowed to run without interruption as it will repair your cannon before you can lose it and it will pick up the cannon once there is only 1 minute left before the break manager is supposed to kick in and considering I have run this script for ages and so have some of my over 200 users and neither me or any of the users have noticed the issue it doesnt seem like a common issue at all, so I would appreciate it if you could give any useful information that I can use to figure out how the script even got into the situation you described.
The break handler is build into the client and nothing scripters have access to and has had issues in the past.
Regardless I have now added another check to log out if you lost your cannon, but as I said before if the script is allowed to run uninterrupted (meaning you didnt pause the script, your internet didnt dc or something similiar) it shouldnt get into that situation, so the issue isnt that it didnt stop when it lost the cannon but rather that it lost the cannon in the first place. If you keep running into that situation I would like to know how that happens. If I dont get more information I am limited in what I can do about your problem.