2011. december 23., péntek

Vonatbefolyásolás és az RW

Alapon sajnos az RW nem tud vonatbefolyásolást, tehát a jelzőképeket a mozdonyon megjeleníteni, sátorjelzőzni,  de nem is olyan nehéz a jelző scriptbe ezt berakni. Egyelőre a letölthető Magyar jelzőcsomag scriptjei nincsenek frissítve ezzel egyébként 1 sornyi kóddal jelzőfajtánként, kiadott jármű híján.

A jelzőképek használatához az engine scriptbe ennyit kell berakni:
function OnCustomSignalMessage ( arg )
  local messages=string.split(arg, "|") --| jelnél szétvágja az üzenetet
  local cabsignal=tonumber(messages[1]) --első darab az előjelzés
  speedlimit=tonumber(messages[2])*3.6 --2. darab az aktuális korlát, m/s-ben küldi a jelző
  if cabsignal<=6 or cabsignal>=0 then
   Call("*:SetControlValue", "CabSignal", 0, cabsignal)
  else
   Call("*:SetControlValue", "CabSignal", 0, 7)
  end
end

function string:split(delimiter)
  local result = { }
  local from  = 1
  local index = 1
  local delim_from, delim_to = string.find( self, delimiter, from  )
  while delim_from do
    result[index] = string.sub(self, from , delim_from - 1)
    from  = delim_to + 1
    delim_from, delim_to = string.find( self, delimiter, from  )
 index = index + 1
  end
  result[index] = string.sub(self, from)
  return result
end

Mint látható kell egy CabSignal nevű control value, aminek a max értéke 7 lehet (ha teljesen kikapcsolt állapotot is akarunk akkor 8).
Ezen kívül a modellben mindegyik jelzőlámpára/jelzésképre egy világító állapotú fénylap addatex materiallal.
A jelzésképek megjelenítését interior visibility objectek hozzáadásával lehet elérni. A lower és upper visibility threshold azt a tartományt jelöli aminél meg kell jelenítenie, a transform name-hez írt objektumot. Azon kívül elrejti. Az objektum nevét a lod paraméterek nélkül kell írni, így az 1_0000_max megjelenítéséhez csak annyit kell írni hogy max.

Elég egyértelműen leolvashatók a képről hogy a scriptből érkező melyik érték mit jelent. A képre nem fért rá még a 80-as, jelzés aminek száma 2, a 40-é 3, a 7-es kód pedig a nincs jel, vagyis fehér jelzést jelenti. Ezt a kódot adja a script, ha nem értelmezhető jelet kap, de bizonyos jelzők csak ezt a jelet adják (nem biztosított főjelző, tolatásjelzők).
Video milyen ez akcióban
Frissítés: sebességadatot is küldenek a jelzők, mint látható a speedlimit változóba kerül ez.

Nincsenek megjegyzések:

Megjegyzés küldése