Команда while отличается от if тем, что она повторяется в течение одного фрейма, пока условие не будет выполнено.
Вот хороший пример:
Short desiredAmnt
SetStrength 0
while( GetStrength < desiredAmnt ) ; переменная для совпадения
modStrength 1
endwhile
Это установит значение силы равным значению desiredAmnt за один фрейм.
Следующий скрипт сделает это за неизвестное количество фреймов, потому что скрипт вызывается каждый фрейм:
if ( getStrength < desiredAmnt ) ; переменная для совпадения
modStrength 1
endif
С другой стороны, из-за первого примера компьютер может повиснуть на некоторое время (если значение велико), а из-за второго нетВообще, я бы отсоветовал вам пользоваться while. Компьютер действительно «повисает», что чрезвычайно непрятно. Лучше пользоваться вторым примером. (Прим. Gwathlobal).
Заметьте, что этим можно обойти некоторые функции, которые не принимают переменные как параметры.