Rose Posted October 28, 2017 Share Posted October 28, 2017 Quisiera pedir algunos consejos a la hora de usar while ya que nunca le he visto utilidad(o, al menos, en mis scripts nunca lo uso). Ya sé que while es un bucle que se repite mientras X cosa sea verdadero(así lo tengo entendido yo, me corrigen si no es así), sin embargo nunca he llegado al caso de usarlo. Gracias Link to comment
Arsilex Posted October 29, 2017 Share Posted October 29, 2017 (edited) 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 Edited October 29, 2017 by Arsilex 1 Link to comment
Simple0x47 Posted October 29, 2017 Share Posted October 29, 2017 While, expresión gráfica en MTA: 1 Link to comment
Rose Posted October 30, 2017 Author Share Posted October 30, 2017 La verdad es que sería muy bueno si se pudiera hacer eso del wait como en el primer ejemplo ;v. Gracias @Arsilex, ya más o menos entiendo, aunque creo que aún no usaré el while(por el momento). Link to comment
Arsilex Posted October 30, 2017 Share Posted October 30, 2017 7 hours ago, Rose said: La verdad es que sería muy bueno si se pudiera hacer eso del wait como en el primer ejemplo ;v. Gracias @Arsilex, ya más o menos entiendo, aunque creo que aún no usaré el while(por el momento). Yo solo te digo que después de casi 5 años en MTA como mucho eh usado el while 2 - 3 veces 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now