A może sensowne jest klikanie ignore przy każdym stepie z powodu nieistniejącego indexu tablicy?
napisałeś najgorsze co można zrobić - przechowywać aktywną broń jako string...
powinno być:
GML
if ( bron != nic )
{
draw_text( xx - 15 , yy + 45 , weapon_name[ bron ] )
//i reszta rysowania...
}