trensim.comSimulación Ferroviaria
   

Descifrando un Script

Foro destinado a la discusión de aspectos relacionados con la creación de scripts en RailWorks.

Moderador: Moderadores

Re: Descifrando un Script

Notapor asdru » Sab Oct 27, 2012 1:38 pm

Para nada pienso que no sea útil, es utilisimo.

Y la intencion de éste hilo es exactamente como tutorial, aproveche el script del NS1300 para matar dos pajaros de un tiro,pero estais completamente en lo cierto.

Y si nó fuera porque este fin de semana estoy un poco liado, yo mismo haría la locomotora base para hacer las pruebas.

Hasta tal punto me interesa, que no me importa dejar aparcada unos dias la 269 para seguir el tutorial con vosotros haciendo todas las pruebas.

:app: :app: :app: :app: :app: :app:
Imagen
Avatar de Usuario
asdru
 
Mensajes: 1049
Registrado: Mar Mar 09, 2004 8:50 pm
Ubicación: Un dia en Madrid y otro en Pamplona

Re: Descifrando un Script

Notapor asdru » Sab Oct 27, 2012 1:38 pm

Para nada pienso que no sea útil, es utilisimo.

Y la intencion de éste hilo es exactamente como tutorial, aproveche el script del NS1300 para matar dos pajaros de un tiro,pero estais completamente en lo cierto.

Y si nó fuera porque este fin de semana estoy un poco liado, yo mismo haría la locomotora base para hacer las pruebas.

Hasta tal punto me interesa, que no me importa dejar aparcada unos dias la 269 para seguir el tutorial con vosotros haciendo todas las pruebas.

:app: :app: :app: :app: :app: :app:
Imagen
Avatar de Usuario
asdru
 
Mensajes: 1049
Registrado: Mar Mar 09, 2004 8:50 pm
Ubicación: Un dia en Madrid y otro en Pamplona

Re: Descifrando un Script

Notapor blas_dani » Sab Oct 27, 2012 1:38 pm

Hola:

Pues me pongo a ello y cuelgo el rwp con la loco del developer esta tarde.
Saludos.
Avatar de Usuario
blas_dani
 
Mensajes: 2863
Registrado: Jue Sep 11, 2003 1:00 pm
Ubicación: Barri de Gràcia. Barcelona

Re: Descifrando un Script

Notapor RTP » Sab Oct 27, 2012 1:45 pm

Por ejemplo, en el ejemplo de arriba se activa el arenero cuando patina.
Muy bien.
Pero hay que poner otra función para desactivarlo cuando no patina.

Antes, de pasada, ha aparecido un importante concepto:

Programación cíclica - Cuando el script se ejecuta una y otra vez.
Programación rítmica - Cuando el script se ejecuta a intervalos regulares.

El ejemplo de maniobra de un voltimetro seria rítmico.
El de un arenero seria cíclico.

Es FUNDAMENTAL distinguir entre ambos tipos.

Un procedimiento para escribir estas cosas seria:

Definir las variables que voy a utilizar y sus limites máximo y mínimo ( Para seguridades ).
Definir los procesos, en lenguaje llano:

"Cuando pasa esto, se hace esto otro"

Se prueba sobre un papel.

Y, por fin se traduce al lenguaje que sea.

Llevo mas de veinte años haciéndolo así, y me ha funcionado siempre.
Pensad que no es lo mismo quemar una locomotora simulada que destrozar
un robot de paletizado real.

Saludos.
Avatar de Usuario
RTP
 
Mensajes: 456
Registrado: Mar Ene 01, 2008 8:59 pm
Ubicación: BCN

Re: Descifrando un Script

Notapor 444.518 » Sab Oct 27, 2012 3:31 pm

RTP escribió:"Cuando pasa esto, se hace esto otro"

Se prueba sobre un papel.

Y, por fin se traduce al lenguaje que sea.


Sin duda alguna es la mejor forma de programar. Yo aprendí haciendo organigramas antes de haber tocado el teclado de mi primer ZX Spectrum.

Sobre el arenero automático, pues para que fuera funcional y no solo un concepto, quería mejor así:

Código: Seleccionar todo
if Call( "*:GetControlValue", "Wheelslip", 0 ) > 1.1 then -- comprueba el control de derrape de la locomotora. Si es mayor que 1.1

Call( "*:SetControlValue", "Sander", 0, 1) -- activa el arenero

else -- si no es mayor que 1.1

Call( "*:SetControlValue", "Sander", 0, 0) -- no activa el arenero.

end


:mrgreen:
Un saludo, J.
Imagen
El problema de tener una mente abierta, es que la gente se empeña en llegar y tratar de poner cosas dentro.
-- Terry Pratchett
Avatar de Usuario
444.518
 
Mensajes: 1251
Registrado: Mar Jun 28, 2011 7:05 pm
Ubicación: Hospital de Móstoles

Re: Descifrando un Script

Notapor HANNIBAL SMITH 2 » Sab Oct 27, 2012 3:37 pm

444.518 escribió:
Sobre el arenero automático, pues para que fuera funcional y no solo un concepto, quería mejor así:

Código: Seleccionar todo
if Call( "*:GetControlValue", "Wheelslip", 0 ) > 1.1 then -- comprueba el control de derrape de la locomotora. Si es mayor que 1.1

Call( "*:SetControlValue", "Sander", 0, 1) -- activa el arenero

else -- si no es mayor que 1.1

Call( "*:SetControlValue", "Sander", 0, 0) -- no activa el arenero.

end


:mrgreen:


Y con WheelSlipAmount y WheelSlipDuration puedes hacer mucho más preciso el tema del arenero. Me imagino que con uno controlas lo que derrapa y la duración del mismo.
ME ENCANTA QUE LOS PLANES SALGAN BIEN
Avatar de Usuario
HANNIBAL SMITH 2
 
Mensajes: 282
Registrado: Sab Sep 08, 2012 8:06 pm

Re: Descifrando un Script

Notapor blas_dani » Sab Oct 27, 2012 3:53 pm

Hola:

Bueno, ya tenemos la locomotora de prácticas, de los developer docs del RS.
En el simulador funciona Ok, como puede verse en la captura. Los lua de origen salen codificados; los adjunto aparte, aunque estan casi vacios ;-)
Esta locomotora tiene operativo todo lo básico y una cabina con los controles básicos también.

En el editor sale como Sample engine. Provider: Developer Product: Addon

Al ataque!!!

Saludos.
Adjuntos
Sample engine.zip
(174.84 KiB) 1967 veces
Sample engine.jpg
luas.zip
(675 Bytes) 1997 veces
Avatar de Usuario
blas_dani
 
Mensajes: 2863
Registrado: Jue Sep 11, 2003 1:00 pm
Ubicación: Barri de Gràcia. Barcelona

Re: Descifrando un Script

Notapor Repo » Sab Oct 27, 2012 4:18 pm

Perfecto blas_dani. Ese script casi en blanco esta perfecto para empezar.

Recomiendo encarecidamente usar el notepad++ como editor de archivos LUA.

Descargable desde acá:

http://notepad-plus-plus.org/download/v6.2.html

Una vez instalado resulta muy útil referenciar la extensión LUA a este programa, de modo, que con sólo hacer doble click sobre el fichero, éste abra directamente en el notepad++.

En la pestaña "Language" se debe escoger el lenguaje LUA para que la sintaxis se muestre adecuadamente.

Agrego ya mismo un dato importante, si ya han visto el script de esta locomotora de muestra que ha publicado blas_dani, podrán ver que trae unicamente la funcion "OnControlValueChange", bueno pues eso no es capricho, aunque esa función no haga nada, SIEMPRE tiene que estar ahí, así como se le ve, si la quitas el script no funciona.

Todo engine script debe, a lo menos, tener esto:

Código: Seleccionar todo
function OnControlValueChange ( name, index, value )

   if Call( "*:ControlExists", name, index ) then

      Call( "*:SetControlValue", name, index, value );

   end

end



Cosas de RW :roll:

Saludos.
Imagen
Avatar de Usuario
Repo
 
Mensajes: 1198
Registrado: Mar Oct 11, 2005 4:27 pm
Ubicación: Santiago de Chile

Re: Descifrando un Script

Notapor asdru » Sab Oct 27, 2012 4:23 pm

OK, descargada, instalada y preparado para empezar a hacer cosas.

Una vez instalada, me imagino que es mejor sustituir los archivos de script compilados por los LUA que adjunta Blas_Dani, cierto?

Y por suspuesto, usando notepad++
Imagen
Avatar de Usuario
asdru
 
Mensajes: 1049
Registrado: Mar Mar 09, 2004 8:50 pm
Ubicación: Un dia en Madrid y otro en Pamplona

Re: Descifrando un Script

Notapor Repo » Sab Oct 27, 2012 4:46 pm

asdru escribió:Una vez instalada, me imagino que es mejor sustituir los archivos de script compilados por los LUA que adjunta Blas_Dani, cierto?


A ver, me parece que no va así la cosa. Veo que blas_dani empaquetó la loco ya exportada y lo que necesitamos son archivos fuente para ponerlos en la carpeta Source como si fuera un proyecto nuestro, de otro modo no podremos agregar o modificar controles y lo demás. Según recuerdo, esta loco se entregó con sus archivos fuente con un Provider llamado "Developer" y un producto llamado "Addons". Realmente la loco ya exportada en la carpeta Assets no nos servirá de mucho.

blas_dani, ¿podrías hacer un zip o rar de los archivos fuente?

Saludos.
Imagen
Avatar de Usuario
Repo
 
Mensajes: 1198
Registrado: Mar Oct 11, 2005 4:27 pm
Ubicación: Santiago de Chile

Re: Descifrando un Script

Notapor HANNIBAL SMITH 2 » Sab Oct 27, 2012 5:01 pm

Repo escribió:
asdru escribió:Una vez instalada, me imagino que es mejor sustituir los archivos de script compilados por los LUA que adjunta Blas_Dani, cierto?


A ver, me parece que no va así la cosa. Veo que blas_dani empaquetó la loco ya exportada y lo que necesitamos son archivos fuente para ponerlos en la carpeta Source como si fuera un proyecto nuestro, de otro modo no podremos agregar o modificar controles y lo demás. Según recuerdo, esta loco se entregó con sus archivos fuente con un Provider llamado "Developer" y un producto llamado "Addons". Realmente la loco ya exportada en la carpeta Assets no nos servirá de mucho.

blas_dani, ¿podrías hacer un zip o rar de los archivos fuente?

Saludos.


Esto que comentas se puede hacer con el RW_Tools


Os adjunto un archivo con ciertas funciones que os puede interesar :mrgreen:
Por cierto los programadores de este juego son unos cachondos mentales, en las primeras líneas del archivo hay unos ejemplos :mrgreen:
Adjuntos
rw.txt
(178.39 KiB) 1970 veces
Última edición por HANNIBAL SMITH 2 el Sab Oct 27, 2012 5:13 pm, editado 2 veces en total
ME ENCANTA QUE LOS PLANES SALGAN BIEN
Avatar de Usuario
HANNIBAL SMITH 2
 
Mensajes: 282
Registrado: Sab Sep 08, 2012 8:06 pm

Re: Descifrando un Script

Notapor javierfl » Sab Oct 27, 2012 5:07 pm

Repo escribió:
Digánme qué opinión les merece estas líneas que he escrito, si son útiles y oportunas, en base a eso veremos si seguimos con otros ejemplos.


Estoy seguro que a todos nos parece magnífica tu aportación, como la del resto de los participantes de este hilo, tan utíl.

Yo de LUA se lo básico, o incluso menos, y tengo más dudas que certezas, y todo lo que estáis apuntando ya me está sirviendo para aprender.

Si hace falta una malla de una locomotora del tipo que sea, por descontado estoy dispuesto a compatirla con todos.

:app: :app: :app: :app: :app:

Saludos:

Javier.-
Avatar de Usuario
javierfl
grupo TrenSim
 
Mensajes: 9620
Registrado: Sab Ago 30, 2003 11:23 pm
Ubicación: Ciudad Astur

Re: Descifrando un Script

Notapor blas_dani » Sab Oct 27, 2012 6:42 pm

Repo escribió:
asdru escribió:Una vez instalada, me imagino que es mejor sustituir los archivos de script compilados por los LUA que adjunta Blas_Dani, cierto?


A ver, me parece que no va así la cosa. Veo que blas_dani empaquetó la loco ya exportada y lo que necesitamos son archivos fuente para ponerlos en la carpeta Source como si fuera un proyecto nuestro, de otro modo no podremos agregar o modificar controles y lo demás. Según recuerdo, esta loco se entregó con sus archivos fuente con un Provider llamado "Developer" y un producto llamado "Addons". Realmente la loco ya exportada en la carpeta Assets no nos servirá de mucho.

blas_dani, ¿podrías hacer un zip o rar de los archivos fuente?

Saludos.


Hola:

Os he subido el ejemplo de locomotora electrica aqui: http://www.mediafire.com/?j4c93r5ya3fjm34
Tened en cuenta que según la carpeta donde tengais el simulador instalado, tendreis que reexportar la locomotora por el tema de las path de las texturas.

Saludos.
Avatar de Usuario
blas_dani
 
Mensajes: 2863
Registrado: Jue Sep 11, 2003 1:00 pm
Ubicación: Barri de Gràcia. Barcelona

Re: Descifrando un Script

Notapor blas_dani » Sab Oct 27, 2012 6:47 pm

HANNIBAL SMITH 2 escribió:
Os adjunto un archivo con ciertas funciones que os puede interesar :mrgreen:
Por cierto los programadores de este juego son unos cachondos mentales, en las primeras líneas del archivo hay unos ejemplos :mrgreen:


Si hubiera una función OnWagonPass...

Una cosa que os propongo. Creo que este hilo deberia dividirse en varios, que trataran exclusivamente de un tema. Sinó, las aportaciones originales se desvirtúan.
El hilo del script de la locomotora elèctrica deberia ser nuevo y dedicado sólo a ello. Incluso valdria la pena crear hilos por funcionalidades (frenado, aceleración, freno dinámico, areneros...), aunque quizá eso sea demasiado. Y alguno que se encargara de hacer un documento recopilatorio tampoco estaria mal.

Saludos.
Avatar de Usuario
blas_dani
 
Mensajes: 2863
Registrado: Jue Sep 11, 2003 1:00 pm
Ubicación: Barri de Gràcia. Barcelona

Re: Descifrando un Script

Notapor HANNIBAL SMITH 2 » Sab Oct 27, 2012 7:20 pm

blas_dani escribió:
HANNIBAL SMITH 2 escribió:
Os adjunto un archivo con ciertas funciones que os puede interesar :mrgreen:
Por cierto los programadores de este juego son unos cachondos mentales, en las primeras líneas del archivo hay unos ejemplos :mrgreen:


Si hubiera una función OnWagonPass...

Saludos.


La función esta que dices no la tienes como bien dices pero igual tiene otro normbre.

De todas formas hay unas funciónes que se llaman TrainPassed, OnConsistPass, OnConsistApproach, OnApproachControl, OnConsistPass, OnRearPassBackwards, OnFrontPassBackwards, OnRearPassForwards, OnFrontPassForwards, OnFrontPassForwards igual con esto puedes solucionar lo que estás buscando.
A la función TrainPassed se la puede preguntar en cada ciclo si ha pasado o no
ME ENCANTA QUE LOS PLANES SALGAN BIEN
Avatar de Usuario
HANNIBAL SMITH 2
 
Mensajes: 282
Registrado: Sab Sep 08, 2012 8:06 pm

AnteriorSiguiente

Volver a LUA Scripting RW

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados