No entiendo que quieres decir con crackbox pero con las dudas que tienes con los strings y todo eso es algo así
Un string es una cadena de texto, para crear un string simplemente pon el nombre de la variable seguido del valor entre comillas:
Los strings no se pueden sumar, pero si se pueden concatenar, por ejemplo, "Hola " y "mundo" concatenado sería "Hola mundo", para concatenar pones el valor 1, seguido de dos puntos y el valor 2, algo así:
concat = "Hola ".."mundo"
También puedes hacer otras cosas con los strings como buscar palabras en ellos, remplazar palabras, convertir a números etc.
Si te vas a la ayuda de AMS, en Input.GetText() hasta abajo dice que retorna una variable de tipo string, esto significa que cuando solicites su contenido, este se te devolverá en forma de texto:
string = Input.GetProperties("Input1")
También existen otros tipos de valores, como ejemplo los números: estos se pueden sumar (+), restar (-), multiplicar (*), dividir (/), modular (%), elevar (^) y agrupar (()), por ejemplo:
a = 1
b = 2
c = a + b --'Da como resultado: 1 + 2 (3)'
El agrupador sirve tanto para números como para valores, y básicamente es algo así:
En el ejemplo anterior, se suma 1 mas el resultado de multiplicar 2 por 3 (6), de manera que la operación básica sería: 1 + 6, que da como resultado 7, pero si queremos sumar 1 + 2 y luego multiplicarlo por 3 sería algo así:
De manera que primero se sume 1 + 2 (3) y luego se multiplique por 3, y la operación básica sería: 3 * 3, que da 9.
Luego de los números tenemos los boleamos, que son nada mas y nada menos que verdadero o falso (true, false) y estos sirven por ejemplo para declarar cosas muy simples que solo requieran de un si o no, tales como "¿La luz esta prendida?", esta pregunta solo tiene 2 posibles respuestas: verdadero o falso. Para declarar una variable de tipo booleana se hace lo siguiente:
Podemos usar los booleanos para los if statments:
if a == true then
print("Hola")
end
Una forma simplificada de hacer este if statment sería de la siguiente manera:
if a then
print("Hola")
end
Como podras ver, ya no se comprueba que "a" sea igual a "true", porque los if statments funcionan de la siguiente manera:
if true the
print("Hola")
end
Si la condición es verdadera (true) entonces se ejecuta el código contenido, también puede agregarse un "else" que lo que hace es ejecutar el código si la declaración no se cumple. Tambien puedes usar "if not true then" que lo que hace es verificar que algo no sea verdadero, lo que vendría a ser un "if a == false then", esta opción nos ahorraría cometer errores tales como estos:
if true then
else
print("Hola")
end
Usando el ejemplo anterior, la simplificación quedaría tal que así:
if not a then
print("Hola")
end
Como puedes ver, nos ahorra tener que poner el else.
Y un ejemplo del uso de booleanos sería así:
if luzPrendida then
apagarLuz()
luzPrendida = false
else
prenderLuz()
luzPrendida = true
end
Luego de los booleanos, tenemos por ultimo las tablas, que son algo más complejas, para que entiendas mejor te mostrare este ejemplo:
Alumnos = {}
Alumnos[1] = {
Nombre = "Jose",
Calificacion = 9
}
Alumnos[2] = {
Nombre = "Esteban",
Calificacion = 8
}
Alumnos[3] = {
Nombre = "Luis",
Calificacion = 7
}
Alumnos.Total = 3
Los caracteres "{}" se usan para declarar un Objeto, los caracteres "[]" para declarar un array, que al español se traduciría como "colección", de manera que "Alumnos" es un objeto con colecciones (arrays) y para acceder a algún elemento la sintaxis sería tal que así:
nombre = Alumnos[2].Nombre
calificacion = Alumnos[2].Calificacion
totalDeAlumnos = Alumnos.Total
En este ejemplo, "nombre" quedaría con el valor de "Esteban", y a "calificacion" se le asignaría el numérico valor de 7, también puedes simplificar la asignación de tablas de la siguiente manera:
Alumnos = {
[1] = {Nombre = "Jose", Calificacion = 9},
[2] = {Nombre = "Esteban", Calificacion = 8},
[3] = {Nombre = "Luis", Calificacion = 7}
}
También sería perfectamente válido solo declarar el nombre del alumno, algo así:
Alumnos = {
[1] = "Jose",
[2] = "Esteban",
[3] = "Luis"
}
nombre = Alumnos[3] --'Esto es igual a "Luis"'
Al final de cada valor, se complementa con una coma (,) declarando el final del valor y comenzando uno nuevo.
Entre otras cosas tenemos los bucles for, que nos ahorrarían muchísimo código a la hora de estar programando, su sintaxis es la siguiente:
for i = 0, 10 do
print(i)
end
Esto haría que "i" comience siendo 0, y se le sume 1 por 1 hasta llegar a 10, y cada vez que se le sume algo al valor, ejecutará el código contenido. Si los bucles for no existieran el código sería algo así:
print(0)
print(1)
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
Como puedes ver esto nos ahorra bastante código. También puedes modificar cuanto avanzan los bucles for, de la siguiente manera:
for i = 0, 100, 2 do
print(i)
end
Esto haría que "i" empiece siendo 0, y se le sume de 2 en 2, haciendo la secuencia 0, 2, 4, 6, 8, 10... etc.
También puedes hacer que cuente en reversa:
for i = 10, 0, -1 do
print(i)
end
Como puedes ver, "i" empieza siendo 10, y se va restando de 1 en 1 hasta llegar a 0, haciendo la secuencia 10, 9, 8, 7... etc
También tenemos bucles while, que lo que hacen es repetir un código hasta que la condición no se cumpla:
while luzPrendida do
tratarDeApagarLuz()
end
Esto nos dice que mientras que luzPrendida sea verdadero, va a ejecutar el código "tratarDeApagarLuz()"
También tenemos las funciones, que lo que hacen es que evitemos repetir código, se declaran de la siguiente manera:
function prueba()
return "Hola"
end
a = prueba()
En este ejemplo, "a" es igual a lo que retorne la función "prueba()", que como podemos ver, retorna siempre "Hola", de manera que "a" es igual a "Hola".
También podemos ponerle argumentos a las funciones, para que hagan algo en especifico con lo que de declaremos:
function sumar(numero1, numero2)
resultado = numero1 + numero2
return resultado
end
suma = sumar(5, 10)
"suma" es igual a lo que retorne la función "sumar", que tiene como argumento en "numero1" el valor "5", y en "numero2" el valor "10", la función lo que hace es sumar el "numero1" más el "numero2" (5 + 10) y retorna el resultado (15), de manera que "suma" es igual a 15.
Si la función no retorna nada, entonces sucedería lo siguiente:
function noHacerNada()
end
nada = noHacerNada()
Como puedes ver, noHacerNada() no retorna nada, por lo que sería lo mismo hacer esto:
Los valores nil significan que no contienen nada, si preguntas que valor tiene una variable que aún no has declarado, te retornará el valor nil.
El lenguaje que usa AMS se llama Lua, y todo lo que aprendiste fue código en Lua. Si bien AMS es un excelente entorno de desarrollo, debido a que es muy visual, fácil de entender y puedes hacer lo que sea con AMS, Indigo Rose (Compañía que desarrolla AMS) se ha preocupado poco por su producto estrella, dando a lugar a software de mierda tal como Andromo, que apenas te serviría para crear presentaciones en Android, que si me preguntas, prefiero hacerlas en PowerPoint. Por otro lado, Lua es un buen lenguaje de no ser porque no cuenta con multihilos, hay muchos repositorios Lua en GitHub, mucho del código es bastante complejo, y una que otra librería, que básicamente es algo que ya esta programado y tu solo debes usarlo. Funciones como Application.SetRedraw, Input.GetText etc. son funciones de la librería por defecto de AMS, Indigo Rose ya las programo y tu solo usas ese código, aunque a veces hay funciones de mierda, por ejemplo:
Debido a que esta ya esta incluida en la librería por defecto integrada en Lua, y sería más fácil usarla:
La única esperanza que tiene AMS es que Collin recupere la cabeza (y ni siquiera se si sigue vivo) y empiece a poner más atención en AMS, integrando más seguridad en tu proyecto, porque con solo tener la contraseña del _proj.dat ya estas hecho mierda, integrando ademas la posibilidad de personalizar la interfaz, tal como lo hace Visual Studio con Microsoft Blend. también expandir su librería y mejorar su editor de código, porque cualquiera puede hacer un editor igual o en 1 hora (simplemente marcando las palabras reservadas y con el spellchecker por defecto de Lua), entre otras cosas relativamente simples pero que atraerían más publico a AMS, de ahí en fuera, te recomiendo empezar a programar en C# con Visual Studio y Windows Forms, es lo más parecido a AMS que he encontrado en Visual Studio, porque lo más probable es que AMS 8 haya sido la ultima versión de este programa. Y bueno espero que te sirva todo lo poco que te enseñe, porque tampoco soy un experto absoluto en Lua pero en fin.