Bueno en mta a mi parecer el while esta siendo usado un poco mal, al no tener nosotros una función de Wait() o Pause() como en C++ por ejemplo para poder pausar el while lo hace muy useless ya que le quitamos muchas posibilidades muy buenas como podría ser hacer un simple timer rápido en una función en plan:
function textos()
while true do
outputChatBox("Esto es un texto")
Wait(5000)
outputChatBox("Esto es un texto a los 5 segundos del otro texto")
Wait(5000)
end
end
Lo cual a mi parecer es algo básico y necesario pero bueno no tenemos esa opción, en nuestro caso que es el de MTA es bastante useless esta funcion ya que si se ejecuta muchas veces se lagea al jugador por que claro como dije antes no tiene un Wait
pero una de las cosas que se podría hacer No prometo que no lague es un generador de coordenadas básicas algo como:
function generateRandom(x, y, distance, minDistance)
local found = false
local posX = 0
local posY = 0
while not found do
posX = math.random(-distance, distance)
posY = math.random(-distance, distance)
if getDistanceBetweenPoints2D ( x, y, posX + x, posY + x ) > minDistance then
found = true
end
end
return posX, posY
end
Repito es solo un ejemplo no se ni si funciona pero mas o menos es la idea de sacar una posición a X distancia del centro con un maximo de distancia es decir es como hacer una rosquilla
Digamos que es como este circulo dentro de la parte verde es donde nos daría las coordenadas aleatoriamente, en cambio fuera ya no. Con esto por ejemplo podríamos hacer un spawner de objetos al lado del jugador pero que no este muy cerca del es decir que no spawne justo en su cara. Que tenga que buscarlos.
La conclusión es tanto el while como el repeat son funciones muy poderosas si tuviéramos un Wait en condiciones. Claramente que necesitaríamos que las funciones sean ASYNC y no SYNC como ahora.
Espero haberte ayudado con tu duda. Aun así el while te puede servir como if por si no quieres escribir if condición then
PD: Otra cosa que quiero añadir para aquellos que digan que se puede hacer un Wait con corutines, se perfectamente que se puede en este post solo estoy hablando lo que tiene MTA hecho. No lo que se puede hacer