1. Bitte bitte bitte hör auf, Methoden als "defs" zu bezeichnen, nur weil def das Keyword ist. Danke,
2. Hast du $MSS.change_weapon denn schon mal einzeln getestet? Sprich du packst es in ein Event auf der Map (Scriptbefehl) und laberst das an.
2a. Wieso hast du da überhaupt noch ein se_play in ausrüsten (Umlaute in Methodennamen, urgh.), change_weapon sollte doch eh schon einen Sound abspielen, wenn du es aufrufst (was gleichzeitig ein guter Check ist, ob es überhaupt aufgerufen wurde).