Zum ursprünglichen Problem, weshalb da so eine Riesenzahl herauskommt, fällt mir leider auch nicht viel ein. Das kann eigentlich nicht sein und hat ziemlich sicher nichts mit den Variablentypen zu tun. Ist sichergestellt, dass der fragliche Skript-Block nur einmal ausgeführt wird? Also nicht, dass Du da versehentlich eine Art Endlosschleife gebaut hast und dieser Block evtl. in jedem Frame durchlaufen wird? Das gäbe dann ziemlich schnell sehr große Werte. Nur so eine vage Vermutung.

Zitat Zitat von Lazarus Beitrag anzeigen
Was das Spiel ausspuckt, wenn ein Integer-Wert eine Zahl mit Komma wiedergeben soll(die Chance liegt im Schnitt bei etwa 7,7%), will ich gar nicht wissen.
Dabei passiert nichts schlimmes. Der Nachkommaanteil der Float wird einfach abgeschnitten. Von daher ist es auch nicht erforderlich, zu diesem Zweck extra ein Abfrage-Konstrukt zu erstellen.

Sofern eine korrekte Rundung gewünscht ist, ginge noch folgendes:
Code:
float f
short s

begin Gamemode

	set s to f
	if s >= 0
		set s to s + ( ( f - s ) >= 0.5)
	else
		set s to s - ( ( f - s ) <= -0.5)
	endif
end
siehe auch die Beschreibung des SET-Befehls im Wiki:
http://cs.elderscrolls.com/constwiki/index.php/Set


Zitat Zitat von Lazarus Beitrag anzeigen
Was sind das eigentlich für abstruse Bedingungen im Script? Normalerweise müsste es heißen 'Wenn Variable1 == X', bei dir steht aber quasi einfach nur 'Wenn Variable1'.
Das geht in bestimmten Fällen schon. Der Vergleichsoperator muss nicht zwingend angegeben werden. Fehlt er, wird einfach geprüft, ob die Bedingung "Wahr" ist. Wobei "Wahr" durch den Integerwert 1 dargestellt wird und "Falsch" durch 0.

Statt z.B.: if Player.IsSwimming == 1 kann man auch einfach nur: if Player.IsSwimming schreiben.