Problema con ciclos y condicionales

DARR3D - 21/08/2009 06:52
Hola estoy aprendiendo maxscrip y encuentro un problema cuando aplico sentencias de decisión lógica, según entiendo la sintaxis es esta.

For (condición)do.
(Sentencias).

If(condición)do.
(Sentencias).

Pero siempre que hago cumplir el código me sale este error.

Syntax error: at), expected .

In line:).

Y no entiendo por qué si hasta copie el mismo que sale en el libro de dónde estoy aprendiendo que es este.

Color_01 = color 0 0 80.

Color_02 = color 255 255 255.

Stepsize_r = (color_02.r - Color_01.r)/$.count.

Stepsize_g = (color_02.g - Color_01.g)/$.count.

Stepsize_b = (color_02.b - Color_01.b)/$.count.

For I = 1 todo $.count do.

Newcolor = (color ((i*stepsize_r) + color_01.r-stepsize_r) ((i*stepsize_g)+color_01.g-stepsize_g) ((i*stepsize_b)+color_01.b-stepsize_b)).
$[i].wirecolor = newcolor).

Espero que me puedan indicar done esta mi error de sintaxis, muchas gracias. Un saludo.
pixelkiller - 21/08/2009 09:18
Hola Darr3d, no lo sé seguro, porque no controlo mucho de Maxscript y me cuesta mucho dar con la solución a las cosas que hago.

Pero, diría, que tiene algo que ver con la referencia al objeto seleccionado, quiero decir, que cuando ejecutas un script el $.objetoseleccionado, no funciona: $.count do.

Creo que para que pueda funcionar tienes que hacer referencia a un objeto por su nombre.

Por lo que entiendo de tu script, quieres hacer algo con los colores de un conjunto de objetos, ese conjunto, tienes que meterlo en un array, para poder hacer cosas con cada objeto del array.

Siento no poder explicarme mejor, y seguramente te habré liado más pero bueno, yo siempre he logrado hacer mis scripts con la ayuda y mirando scripts de otra gente. Suerte.
Cesar Saez - 21/08/2009 10:48
El for debería ser algo como:
[code]for variable=ninicial todo nfinal do.

Aquí lo que quieres que haga.

En cada repetición.
)[/code]

Y el if algo como.
[code]if condición then.

Aquí lo que quieres que haga.

Si se cumple la condición).

Else.

Aquí lo que quieres que haga.

Si no se cumple la condición.
)[/code]
DARR3D - 21/08/2009 19:17
Gracias a ambos por sus respuestas, César yo te pregunto algo en 3dsmax script no se trabaja con while? Es que en donde estoy aprendiendo solo muestran el for y no el while, Maxscript es que no lo usa?
Muchas gracias a los dos.
Cesar Saez - 22/08/2009 00:14
Si que lo hay.
[code]while condición do.

Haz lo que tengas que hacer.
)[/code]