Gun restriction would actually fix it. Take the firearms from the civilians and they won't be able to shoot up a building when their raise is denied.
And most importantly, the US' budget goes mainly into the military. This shouldn't happen much less with the amount of money inverted into the millitary.
As for your "honest citizen saved the day", the guy with the automatic rifle shouldn't have gotten it in the first place.
Criminal scum will always go against the law.