Preguntas y respuestas sobre Open Rails
Publicado: Mié Mar 14, 2018 8:24 pm
->
Bienvenido a los foros de STR
http://spaintrainzrutas.com/foro/
Yendo a las prestaciones de las computadoras de los tiempos en que inicialmente se publicó el MSTS (no sé si fue alrededor del 2001o 2004), me imagino que esto va a cuento de la "cantidad de sonidos", parámetro incluido en las configuraciones del simulador, con el fin de ahorrar recursos en pc de bajo rendimiento. Siendo que hoy la tecnología avanzó mucho, en los hogares, este concepto tendría que haber perdido sentido de existencia, y quedarnos con solamente el ScalabiltyGroup 5 (y ni siquiera el 0, que OpenRails omite a favor de hacer sonar los otros, en caso de AI).Antuan, en Trensim, Mar 11 2008 escribió:(...) El simulador utiliza varios ScalabiltyGroup según sea la configuración de las opciones del simulador que tienen que ver con el sonido. (...) El ScalabiltyGroup tiene que ver también con la prioridad asignada a los sonidos por el simulador, y cuando hay muchos, discrimina a unos en función de otros. (...)
Hola Buenas, tengo el mismo problema que tu y es raro que nadie haya contestado para arreglar este problema, pero es que ninguna de las 311 funcionan, Yo uso Open rails, no uso MSTS y es raro que algo para OR no funcione.Via_Libre escribió: ↑Mar Oct 22, 2019 8:48 amHola buenos días, he instalado los tractores Renfe 311 descargados de esta web, y no he podido utilizarlos porque me sale el siguiente error:
"System Argument Out of Range Exception. El indice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parametro:index"
Conocéis alguna manera de poder subsanarlo?
Obtuve una respuesta en Elvas Tower, y aquí la comparto: cuando el tiempo en la estación supera las ocho horas, ocurre este problema. La solución: que el tren esté en la estación por ocho horas y luego se forme ($FORMS) un nuevo tren que cumpla el horario restante.LeoGarcia90660 escribió: ↑Mar Mar 31, 2020 2:27 amBuenas noches. Yo uso la versión X4259. Estoy creando un Timetable. Descubrí el siguiente problema. El tren llega a la plataforma a las 0:10 y debe partir a las 16:15. Pero el tren comienza cuando termina el parámetro "PlatformMinWaitingTime" (un minuto). Conduje el tren en conflicto, y cuando llego a la estación, el minutero indica "1440 minutos" restantes, en lugar de aproximadamente 960 que corresponderían. ¿Por qué? Gracias!
(Pd.: si un moderador o administrador pudiera contactarme por privado, para resolver un pequeño error en cuanto a mi registro, se lo agradeceré.)
La cuestión es que no logro encontrar un término "OCCUPIED" donde insertar el nuevo código && TrainHasCallOn(), en mi script:TrainHasCallOn function
(...)
The use of this function must be combined with a check for blockstate ==# BLOCK_OCCUPIED.
Note: this function must NOT be used in combination with blockstate ==# JN_OBSTRUCTED.
Example (part of script only) :
Código: Seleccionar todo
if (enabled && route_set() ) { if (block_state == #BLOCK_CLEAR) { // normal clear, e.g. state = #SIGASP_CLEAR_1; } else if (block_state == #BLOCK_OCCUPIED && TrainHasCallOn() ) { // clear on occupied track and CallOn allowed state = #SIGASP_STOP_AND_PROCEED; } else { // track is not clear or CallOn not allowed state = #SIGASP_STOP; } }
Código: Seleccionar todo
SCRIPT UKSemHome
extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
if (!enabled || // Not enabled/cleared to show natural state?
block_state() !=# BLOCK_CLEAR || // Block ahead not clear?
!route_set()) // Switch not set as per link?
{ state = SIGASP_STOP; }
else
{ state = SIGASP_CLEAR_2; }
draw_state = def_draw_state (state); // Get draw state
SCRIPT UKSemDist
extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float dist_multi_sig_mr ();
extern float state;
extern float draw_state;
extern float enabled;
if ( //!enabled || // Not enabled/cleared to show natural state?
!route_set() || // Switch not set as per link?
dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP)
{ state = SIGASP_APPROACH_2; }
else
{ state = SIGASP_CLEAR_2; }
draw_state = def_draw_state (state); // Get draw state
SCRIPT ARSemLink
extern float block_state();
extern float route_set();
extern float def_draw_state();
extern float state;
extern float draw_state;
extern float enabled;
if (enabled && block_state() ==# BLOCK_CLEAR && route_set())
state = SIGASP_CLEAR_2;
else
state = SIGASP_STOP;
draw_state = def_draw_state(state);
SCRIPT ArSemDesvio
extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float opp_sig_mr();
if (enabled && route_set() && opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP )
{ state = SIGASP_STOP_AND_PROCEED; }
else
{ state = SIGASP_STOP; }
draw_state = def_draw_state (state); // Get draw state
SCRIPT SenalEnCir
// Pantalla Principal (Home) 2 estados. válida para: Salida de ramales. Salida de estación
extern float block_state ();
extern float route_set ();
extern float next_sig_lr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
float next_state;
if (!enabled || // Not enabled/cleared to show natural state?
block_state() !=# BLOCK_CLEAR || // Block ahead not clear?
!route_set()) // Switch not set as per link?
{ state = SIGASP_STOP; }
else
{ state = SIGASP_APPROACH_2; }
draw_state = def_draw_state (state); // Get draw state
SCRIPT ArSemAbsAAOM2
extern float block_state ();
extern float route_set ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float opp_sig_mr();
if (enabled &&
(opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP ||
block_state() ==# BLOCK_CLEAR))
{
if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP &&
block_state() ==# BLOCK_CLEAR &&
route_set()
)
state = SIGASP_CLEAR_2;
else{
if(route_set())
{ state = SIGASP_STOP_AND_PROCEED; }
else { state = SIGASP_RESTRICTING; }
}
}
else
state = SIGASP_STOP;
draw_state = def_draw_state(state);
Sigo dando vueltas con el asuntoA block_state() test can return one of three values:
CLEAR if nothing is in the block to the next signal,
OCCUPIED if a train is between this signal and the next (or end of track), or
JN_OBSTRUCTED if the block is impassible due to a switch being lined against the intended route.
Basically, call-on should only be necessary when the block ahead is occupied hence the typically required check if (block_state() ==# BLOCK_OCCUPIED)