kleine anmerkung hierzu:
if sword <= 0.33 then
ObjectHideSubObjectPermanently( self, "SWORD01", false )
elseif sword <= 0.66 then
ObjectHideSubObjectPermanently( self, "SWORD02", false )
Ist zwar an sich nicht falsch, allerdings kanns dir passieren das du keine Waffe angezeigt bekommst
Denn, wenn Sword (also die Zufallszahl) kleiner 0.33 ist dann wird SWORD01 angezeigt, zwischen .34 und .66 wird SWORD02 angzeigt, allerdings hast du nicht gesagt was passieren soll wenn die zahl über .66 groß ist
Eventuelle wurde die Zahl bisher immer größer .66, dann wird dir natürlich nichts angezeigt
Lösungvorschlag dazu: if sword <= 0.50 then
ObjectHideSubObjectPermanently( self, "SWORD01", false )
else
ObjectHideSubObjectPermanently( self, "SWORD02", false )
Der letzte Fall sollte immer ein "else" sein (nicht zwingend, aber am einfachsten), natürlich nur wenn du IMMER eins der beiden Schwerter haben willst...
Würde dir vll auch dazu raten eine eindeutigere Variablenbezeichnung zu verwenden, das hat EA Games leider auch recht schlecht gemacht ( die nennen jegliche Variable "str" -,-*)
Da es sich um eine Zahl handelt würde ich dir raten das ganze SwordZahl oder SwordDouble zu nennen (double ist der Datentyp einer Gleitkommazahl), dann ist der Code auch für Andere leichter Lesbar und es entstehen keine verwechslungen mit zb. den Meshnamen