domingo, 14 de octubre de 2012

Aprender a hacer scripts

Contenido

 [ ocultar ] 

editar ]La introducción de ROBLOX Lua

En este tutorial se muestra cómo hacer algunas secuencias de comandos de base, o de programación. Sin embargo, debe seguir las instrucciones exactamente.
Nota: Con el fin de aprender secuencias de comandos, debe hacer las acciones. La lectura no le ayudará mucho. En realidad SIGA las instrucciones.

edit ]¿Qué es el scripting?

Scripting es una manera de decirle a la computadora qué hacer. Sin embargo, las computadoras sólo pueden entender los comandos para hacer cosas si usted les dice exactamente qué hacer, en un código específico o idioma. Roblox Scripts son comandos en un lenguaje de programación llamado Lua . Lua es no tan difícil de entender, dependiendo de la forma en que desea utilizarlo. Lua fue hecho para ser fácil de leer y fácil de entender, además de ser fácil de poner en juego. Lua fue no diseñado específicamente para ROBLOX. En cambio, fue diseñado para ser puesto en juego como ROBLOX. La Lua en Roblox es una versión de 'normal' Lua que ha sido modificado para ROBLOX. Vamos a aprender esta versión modificada.
Nota: Se trata de "Lua", no "LUA", porque Lua no es un acrónimo.
Una incorporación clave a ROBLOX Lua es la capacidad de navegar por un árbol de objetos en el juego usando una relación padre-hijo entre los objetos (a veces llamado "instancias" en Roblox Lua)

editar ]Su primer programa

Usted está a punto de hacer su primer guión - una secuencia de comandos para matarse. Hay varias maneras de ejecutar (o ejecutar) de código en Roblox, pero se ejecuta el script desde un lugar en Roblox Studio llamado la barra de comandos . La barra de comandos le permite ejecutar una sola línea del guión al instante en un blanco de lugar . La barra de comandos se ejecutará sólo una línea de código a la vez. Lo primero que quiero hacer, es abrir la barra de comandos, que está en Roblox Studio .
¿Cómo se abre Studio , y cómo puedo activar la barra de comandos?
  • Windows XP
    1. Haga clic en el botón en la parte inferior izquierda de la pantalla con el logotipo de Windows y la palabra "iniciar" a su lado.
    2. Sitúe el puntero del ratón sobre "Todos los programas".
    3. Busque la carpeta "Roblox". Pase el ratón sobre eso.
    4. Haga clic en "Studio Roblox".
  • Windows Vista y 7
    1. Haga clic en el logotipo de Windows en la esquina inferior izquierda de la pantalla.
    2. Haga clic en "Todos los programas".
    3. Busque la carpeta "Roblox". Haga clic en eso.
    4. Haga clic en "Studio Roblox".
  • Windows 8 (no comprimidos)
    1. Haga clic en la esquina izquierda muy inferior de la pantalla. El menú de inicio se mostrará.
    2. Haga clic en cualquier parte excepto los botones de las aplicaciones. Una barra se mostrará.
    3. En la barra, haga clic en "Todos los programas".
    4. Busque "Studio Roblox", y luego haga clic en él.
  • Mac OS X
    1. En el Dock, haga clic en la carpeta Aplicaciones (carpeta con una "A" impreso en ella).
    2. Busque "RobloxStudio" y haga clic en eso.
  • Habilitación de la barra de comandos
Puede activar la barra de comandos, vaya a: Ver> Barras de herramientas> Command (si no hay una marca de verificación junto a él). Un cuadro de texto aparecerá en la parte inferior del software. Puede insertar código de allí y que se ejecute.

editar ]Siendo específico

Al crear una secuencia de comandos, usted tiene que saber lo que se quiere decir hacer en exactamente a qué hora y en qué condiciones . Para una secuencia de comandos que mata a su personaje que es bastante obvio lo que tiene que hacer: te mata. Scripting es sólo dar órdenes a la computadora, por lo que sólo necesita una línea de código para hacer algo para matar a su personaje.
Recuerde que los scripts se pueden romper con una sola letra o símbolo que se está equivocado.
¿Cómo te matas a tu personaje? Es necesario configurar el humanoide de salud a cero. Un humanoide es uno de los tipos de objetos en ROBLOX Lua que controla la salud del jugador. Hay muchas maneras de establecer la salud a cero, tales como la eliminación de la cabeza del personaje o que indique específicamente la salud a cero. Por ahora, sólo tendremos que quitar de la cabeza.
ROBLOX no quitará nada hasta que dijo, por lo que necesitamos para navegar por la estructura de árbol de los juegos Roblox para encontrar la cabeza del personaje y retírela. La estructura de un juego Roblox es como un árbol, y el tronco es una DataModel objeto llamado juego . Hay una "rama" (conocido como unniño ) llamado espacio de trabajo . Piensa en todos los ladrillos en su juego los niños sobre los niños del área de trabajo. ladrillos se organizan a medida que más niños del área de trabajo. Tu personaje es un hijo de la área de trabajo, y el espacio de trabajo es un hijo de juego .
Una descripción visual del "árbol genealógico" juego ROBLOX
Tenga en cuenta que los niños de juego que se conoce como servicios de juegos , que proporcionan funcionalidad para su juego de forma automática. Al entrar en cualquier lugar, usted tiene un reproductor de objeto nombrado después de que el interior del Players servicio de juego y un modelo llamado después de que en el área de trabajo (llamado un personaje). Tu personaje tiene su cabeza, el torso, las extremidades y cosas visual. El objeto jugador hace otras cosas que no se tratarán en este momento.
Roblox Studio cuenta con una buena herramienta que le permite ver el árbol genealógico visualmente. Se llama el Explorador # The_Explorer_and_Properties_Bar, ventana del Explorador . Para abrirlo, haga clic en Ver> Explorador. Es explicativo propio ser.

editar ]Escribiendo código Lua

El truco final para ser un programador es el dominio de la forma de hacer que el código que hace lo que quiere, cuando lo quiere. Dado que usted es un principiante, usted puede caminar a través de los pasos necesarios para hacer que su código haga lo que quiera a partir del Inglés al código Lua. No pienses en secuencias de comandos como la traducción a un idioma, pensar en secuencias de comandos como dar órdenes sobre lo que debe hacer.
Aquí está nuestra orden de partida. Eso es lo que queremos que suceda, y lo que se ha escrito en la llanura Inglés.
Retire el cabezal de USERNAME.
Naturalmente, ROBLOX no gusta mucho porque es en Inglés! Usted tiene que encontrar la manera de expresar lo que quieres que ocurra en código Lua.
En el juego, encontrar espacio de trabajo, encontrar NOMBRE DE USUARIO, encontrar su cabeza, y retírela.
juego es la raíz de todas las cosas en su juego. Es necesario "bajar" el árbol de la familia y encontrar el ladrillo derecho de eliminar. Para obtener un objeto que es un hijo de otro objeto presente, se utiliza un punto ( . ) después de que el objeto principal, el nombre del objeto secundario. Pasando por el árbol, obtenemos lo siguiente:
Eliminar game.Workspace.USERNAME.Head
Esto es casi una declaración de trabajo ROBLOX Lua! Ahora, para eliminar realmente la cabeza, un método debe ser utilizado. Los métodos son funciones que hacen cosas específicas en Roblox para usted por llamar a ellos. Los métodos son funciones de los objetos en Roblox Lua. Para llamar a un método en un objeto de Lua, utilice dos puntos ( : ) después del objeto. A continuación, indique el nombre del método, luego dos paréntesis sin nada en ellas. Métodos y funciones toman argumentos , que son valores dados a la función para cambiar la forma en que funciona. El "Destroy" método no toma ningún argumento, por lo que colocar el paréntesis ahí para mostrar que no hay nada más que tenemos que dar con el método Destroy.
game.Workspace.USERNAME.Head: Destruir ( )
La declaración anterior es sintácticamente correcto código Lua. Sin embargo, su nombre no es nombre de usuario, por lo que sustituir el nombre pulg Si su nombre era "AwesomeSocks", entonces usted podría utilizar lo siguiente:
game.Workspace.AwesomeSocks.Head: Destruir ( )
Para comparar esto con Inglés, sería como decir "El cielo tiene árboles". Es gramaticalmente correcta Inglés, sino una falsa declaración. Si usted indica el nombre de las cosas que no existen, el script no funcionará y producirá un error.

edit ]Prueba del guión

Para probar el script bien, entrar en cualquier lugar ROBLOX normal en modo un jugador (o construye el modo) para que pueda caminar con tu personaje. AbreRoblox Studio y abra la barra de comandos . Llene una maravilla forrado en, y pulsa enter para ejecutarlo.
NOTA: Usted debe construir abierto o el modo en solitario desde el estudio, si lo abres desde el navegador, usted no será capaz de abrir la barra de comandos.
Si su cabeza desapareció y se oyó un "Oughh!" parecer porque su personaje acaba de morir, entonces usted ha tenido éxito. El script funciona.
Si el script no funciona y no pasa nada, esperamos que esto sucede mucho. Scripters (y programadores por igual) con el problema de sus guiones no haciendo algo bien porque su código tiene errores en el mismo. No te preocupes, aunque - hay una salida , una herramienta clave que puede ayudar a depurar las secuencias de comandos y ponerlos en funcionamiento.

edit ]Configuración de valores en Roblox Lua

¿Qué pasa con el cambio de valores de los objetos en Roblox Lua? Hay una manera de hacerlo, y es más de lo mismo. Para establecer su estado de salud a cero (en lugar de ir " corten la cabeza! "), debe establecer la propiedad de la Salud de su humanoide a cero. Para establecer las propiedades de los objetos, se utiliza un punto ( . ), el nombre de la propiedad, un signo igual y el valor.
game.Workspace.USERNAME.Humanoid.Health =  0
Usted aprenderá detalles acerca de qué es lo que en Roblox Lua posterior (por ejemplo, " ¿Qué hace el signo de igualdad realmente? "). Por ahora, puedes considerarte un guionista muy básico que puede llamar a métodos y cambiar los valores de Propiedades.
Protip: El espacio de trabajo es un servicio de juego especial. Puesto que se utiliza mucho en secuencias de comandos, ROBLOX Lua tiene incorporado un constante (al igual que juego ) llamado espacio de trabajo en lugar de game.Workspace . Usted aprenderá acerca de las constantes y variables más tarde, pero sabemos que el espacio de trabajo es el único objeto en Roblox Lua que tiene su propio construido en constante. Por lo tanto, puede hacer esto:
Workspace.USERNAME.Humanoid.Health =  0

edit ]Insertar un objeto de secuencias de comandos

Para añadir un nuevo guión en Roblox Studio , sólo tienes que seleccionar Espacio de trabajo en la ventana del Explorador y haga clic en Insertar > Objeto ... >Guión . Usted encontrará un script en blanco que se ha agregado al área de trabajo.
Insertscript.JPG
Así, la jerarquía sería:
  • Tree-collapse.png
    Espacio de trabajo
     Espacio de trabajo
    • Guión
       Guión
Trate de modificarlo para hacer cosas diferentes. Es similar a la barra de comandos que hemos estado usando, pero ahora usted puede tener varias líneas de código.

edit ]Edición de una secuencia de comandos en Roblox Studio

Para abrir un objeto de script de fuente (el código del objeto de script) para corregir en Roblox Studio, puede hacer doble clic en la ventana del explorador y un editor de texto se abrirá donde usted puede cambiar la fuente de su script. Cualquier cosa que agregar, quitar o cambiar en este editor de texto es permanente , y además del botón "deshacer", estos cambios no se pueden deshacer una vez que el editor está cerrado.

edit ]Cómo iniciar y detener el script

Objetos de secuencias de comandos ejecutar su código en las siguientes condiciones:
  • El guión se añade al juego (Seleccione la secuencia de comandos en la ventana del Explorador y cortar (Ctrl + X), a continuación, volver a pegarla en el juego (CTRL + V o haga clic en Área de trabajo y haga clic en "Pegar dentro").
  • Propiedad discapacitados El guión se cambia a false (seleccionar la secuencia de comandos en la ventana de Explorer y cambiar lo que está Deshabilitado propiedad en la ventana Propiedades).

edit ]Creación de secuencias de comandos

Hay 5 temas que serán respondidas aquí:
  • Creando el script
  • Almacenamiento de referencias a objetos
  • Escuchando a los eventos
  • Funciones
  • Modificar objetos
NOTA: Todos los trabajos, la construcción y secuencias de comandos, se debe hacer en el modo de edición. Todas estas lecciones se mostrará como si se encuentra en modo de edición. Para abrir el modo de edición, en la pantalla del escritorio, pulse Inicio> Programas> Roblox> Roblox Studio. Luego ve a tu perfil y haga clic en "Editar". También puede presionar CTRL + N o haga clic en Archivo> Nuevo para conseguir un lugar completamente vacío.

edit ]Creación de la secuencia de comandos

Para obtener una secuencia de comandos, vaya en Roblox Studio y luego sólo tiene que seleccionar Insertar> Objeto. Ahora, una ventana aparecerá. En la ventana que aparecerá, haga clic en "Script" y OK. Usted debe encontrar la secuencia de comandos en el interior de "área de trabajo" en la pestaña del explorador. Si no ve ninguna ventana del explorador, vaya a Ver> Explorador.
Ahora, para abrir el script, simplemente haga doble clic en él. Si lo hiciste bien, una ventana para abarcar la totalidad de pantalla dentro del juego. Y encontrarás la línea de "imprimir" Hello World! "" Antes de empezar, sólo seguir adelante y borrar esa línea.

edit ]Cómo hacer referencias a objetos

Suponiendo que el guión está todavía en área de trabajo , que es donde el script se ejecutará. Digamos que usted quiere un ladrillo volviendo invisible / visible, de ida y vuelta al tacto. El guión tiene que saber dónde está ese ladrillo antes de modificarlo.
Ahora, haciendo referencias a objetos no es necesario, pero puede hacer scripting mucho menos trabajo. He aquí un ejemplo de cómo hacerlo:
local de ladrillo = Workspace.Brick
Eso hará que 'ladrillo' se refieren a game.Workspace.Brick . Puede ajustar el nombre a absolutamente nada . Este es un ejemplo de una variable de . Usted puede tener variables como muchos como usted desea en un script.
Si no lo almacene en una variable, cada vez que intenta hacer el guión modificar el objeto, se tendría que poner la línea "Workspace.Brick". Variables que sea mucho más sencillo, ya que sólo tiene que poner el nombre que ha asignado. Nombre del ladrillo deseado a "Brick", y hacer una referencia a él en la secuencia de comandos escribiendo el ejemplo anterior. Tenga en cuenta que hacer una referencia a un objeto es la misma que la asignación de una variable.

editar ]Los oyentes de eventos

Ahora estamos entrando en la carne de scripting. Claro, el guión sabe dónde está el ladrillo es, pero eso es todo. No puede hacer otra cosa. Ahora estamos saltando en un evento de escucha.
Un detector de eventos mira lo que está pasando, y espera a que un evento ocurra. Cuando lo hace, se le indica al guión para hacer algo. Esta es una parte importante de la escritura, de lo contrario no podría realmente hacer guiones esperar para nada.
Aún debe tener el guión con la variable en el mismo. Vamos a hacer que el script escuchar por haber sido tocado (el tocado del evento). He aquí un ejemplo:
brick.Touched: connect ( onTouch )
Cuando el ladrillo se toca, se ejecutará la función llamada onTouch . Tenga en cuenta que el nombre entre paréntesis es el nombre de la función.
Este no es el tipo de escucha solamente. Hay muchos más para usar, algunos de los cuales requieren una cierta familiaridad con scripts. Aquí hay una página de referencia muy bien hecho establecido por MrDoomBringer.
Aquí es donde usted puede encontrar más ayuda en el futuro, cuando usted comienza a entender scripting más. No sólo se muestran los eventos, pero también muestra otras referencias de script necesita para otros aspectos de secuencias de comandos.
Coloque la línea
brick.Touched: connect ( onTouch )
una o dos líneas por debajo de la asignación de la variable
local de ladrillo = Workspace.Brick

editar ]Funciones

Su guión es cada vez mejor y mejor, pero ¿dónde está la función? Su guión se romperá si no tiene uno de esos para que el oyente se refieren a la secuencia de comandos.
¿Qué es una función? Es el lugar donde todo el trabajo se llevará a cabo la modificación. Es también una parte importante de su script. Sin ella, no podrías hacer que el script modificar objetos de los oyentes. Otro ejemplo:
función onTouch ( parte ) 
 
final
No es la función. Como se puede ver, la palabra "función" es seguido por "onTouch", el nombre de la función. El oyente desde la última lección está tratando de hacer referencia a la función. El oyente se va a contar la secuencia de comandos para ejecutar a través de esta función y hacer lo que hay dentro. Observe el "(parte)" después del nombre de la función. Esta es una referencia al objeto de que el oyente encontró que tocó el ladrillo. Esto no es siempre necesario, especialmente para algunos detectores de eventos.
Pero volvamos a lo que estamos viendo. La variable "parte" es el objeto que tocó el ladrillo. Usted puede jugar a este objeto para la diversión más tarde. Ahora note también dos líneas debajo de la función: "Fin". Usted necesitará uno de estos para cada función y otras estructuras de bloque en secuencias de comandos, como "if". Recuerda siempre esto cuando scripting.
Ahora, que las líneas del ejemplo anterior, excepto que poner dos líneas debajo de la asignación de la variable, y una línea por encima del oyente.

editar ]Modificación de objetos

El guión sabe el ladrillo, esperará hasta que se tocaron, y tiene la función de su uso. Pero no sabe qué hacer para el ladrillo.
Aquí es donde se almacena referencias a objetos que permite ahorrar tiempo. Queríamos que el parpadeo invisible / visible, así que aquí tiene un ejemplo:
brick.Transparency =  1 
 esperar ( 1 ) 
 brick.Transparency =  0
Estas líneas se altera el ladrillo como queríamos. Transparencia El ladrillo se cambia a "1", que es completamente invisible. El "esperar (1)" línea hará que el script espera un segundo antes de continuar, entonces la transparencia del ladrillo se pondrá de nuevo a 0, que es completamente visible. Puede modificar "esperar (1)" a cualquier número dentro del paréntesis. Cualquiera que sea el número que poner entre paréntesis será la cantidad de tiempo que se espera en segundos.
Ponga las 3 líneas bajo la línea "función onTouch (parte)" y por encima de la línea "end".

editar ]guión completo

local de ladrillo = Workspace.Brick -. Almacenar una referencia al ladrillo 
 
función onTouch ( parte )  -. La función que se ejecuta cuando se toca la pieza
  brick.Transparency =  1
  esperar ( 1 ) 
  brick.Transparency =  0  
final 
 
 brick.Touched : connect ( onTouch )  - La línea que conecta la función al evento.

edit ]avanzada de scripting técnicas

editar ]Haga sus propias funciones

Artículo principal: Función # Uso de las funciones
Mientras secuencias de comandos, es posible que desee hacer su propia función para llamar más tarde. Esto es bastante fácil, aquí está la sintaxis (gramática) para hacerlo: (NOTA: Estas funciones se llaman sin los dos puntos [:])
función functionName ( parámetros )
  código final functionName ( argumentos )

 

editar ]Funciones con parámetros y argumentos

Un parámetro es una manera de dar a los datos a una función. Un ejemplo de un parámetro: se utiliza el método TakeDamage en un Humanoid. Usted tiene que saber cuánto daño hacen. Usted debería escribir Humanoide TakeDamage (100) a tomar 100 de daño.
NOTA: el método TakeDamage no sufrirán daño si el humanoide tiene una ForceField . Utilice este método para las armas en lugar de establecer directamente la salud, prevenir la desovan asesinos)
Ejemplo
función sayHello ( nombre ) 
    print ( "Hola" .. nombre .. "!" ) 
final
 
 sayHello ( "Bob" )
Hola, Bob!

editar ]Funciones que devuelven valores

Artículo principal: Función # El uso de Retorno
La sentencia return finaliza automáticamente la función en la línea que se encuentra (todavía se necesita usar la declaración final, sin embargo), y luego le da el valor a la variable del lado izquierdo del signo igual.
Ejemplo
- Declarar una función llamada addNumbers con los parámetros "a" y "b" 
función addNumbers ( a, b ) 
    -. hacer una variable llamada "ans", y lo puso a la suma de ayb 
    locales ans = a + b - Devuelve la variable ans llamado. volver ans final - Declare una variable llamada "respuesta" al valor de la función addNumbers, con los argumentos 1 y 2. respuesta = addNumbers ( 1 , 2 ) - Imprimir la respuesta a la salida. impresión ( respuesta )
    
    

 




editar ]El control de flujo

Statments control de flujo o control, básicamente, significa hacer cosas diferentes dependiendo de la situación. También pueden controlar la forma en que se ejecuta el código en el final. Hay dos maneras principales de hacerlo en Lua, ambos implican condiciones.

editar ]Condiciones

Una condición es una expresión que sea igual a true o false. Las condiciones se suelen utilizar en sentencias if, aunque no siempre. Una condición nunca se puede colocar por sí mismo. Aquí están algunas condiciones simples:
si  1  ==  2  entonces
Tenga en cuenta el "==". "==" Es la comparación de este tipo, y "=" es para la asignación como la asignación de una variable de un valor.
Por supuesto que no es un 2! Así que eso sería falso.
si  1  <  2  luego
Eso sería verdad, porque 1 es menor que 2.

edit ]Si los estados

Artículo principal: Sentencias condicionales
El caso de declaración hace algo sólo si una condición es verdadera.
Sintaxis:
si  ( condición )  entonces
  el código final
Ejemplo
si  2 + 2  ==  4  luego 
imprimir ( "Todo está bien en el mundo" ) 
final

Esto imprime "Todo está bien en el mundo", ya que 2 + 2 es igual a 4.
También hay una sentencia else, que se ejecuta si la condición es falsa:
si  ( condición )  entonces
  codificar otro  código final


Ejemplo
si  ( 2 + 2  ==  4 )  luego 
de impresión ( "Todo está bien en el mundo" ) 
más 
impresión ( "Warning! Advertencia ordenador autodestrucción!" ) 
final

editar ]Mientras

Artículo principal: Loops # Mientras
mientras que  < condición >  hacer
  código final
Esto hace algo una y otra vez hasta que la condición es falsa, o el comando break se ejecuta. Aquí hay algo muy importante: Si se trata de un bucle infinito, tienes que poner una espera () en el bucle! De lo contrario el servidor tomará cada onza de su poder de procesamiento para ejecutar el código, porque justo cuando se hace, se quiere ejecutar de nuevo. Esto hará que falle el servidor si no se detiene. Esto hará que esperar para que tenga tiempo para ejecutar otras cosas.
Ejemplo
mientras  verdadero  do 
 print ( "quedando el ordenador ..." ) 
final

Eso hará que falle el servidor.
Ejemplo
mientras  verdadero  hacer 
 print ( "Sin recuperarse, pero no chocar" )
  wait ( 1 ) 
final

Eso todavía se retrasará, pero no va a bloquear el servidor.

6 comentarios:

  1. Hey me puedes ayudar a hacer Un juego para roblox esque nose programar scripts y casi no entendi esto :C

    ResponderEliminar
  2. ¿Tu sabes como hacer un script que cuando un jugador mate a otro jugador, el jugador que lo mato reciba el dinero?, esque no encuentro ninguno así, todos los scripts que he visto hacen que el que reciba el dinero es el que muere.

    Si me pudieras decir que tengo que cambiar en el siguiente script para que funcione como yo te dije te lo agradecería mucho:
    game.Players.PlayerAdded:connect(function(player)
    local folder = Instance.new("Folder",player)
    folder.Name = "leaderstats"
    local currency1 = Instance.new("IntValue",folder)
    currency1.Name = "Cash"
    player.CharacterAdded:connect(function(character)
    character:WaitForChild("Humanoid").died:connect(function()
    local tag = character.Humanoid:FindFirstChild("creator")
    if tag ~= nil then
    if tag.Value ~= nil then
    currency1.Value = currency1.Value + 5
    end
    end
    end)
    end)
    end)

    ResponderEliminar
    Respuestas
    1. O que por ejemplo el jugador cuando muera suelte una moneda.

      Eliminar
  3. Me haces un script de cuando apretes dos veces espacio pueda volar?

    ResponderEliminar