Advertisement
JachyHm

LVZ RailWorks

Feb 6th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.73 KB | None | 0 0
  1. ----------------------------------------LVZ-----------------------------------------------
  2. local LVZnapeti = Call("GetControlValue", "LVZnapeti", 0) --nacti hodnotu Vmetru do promenne
  3. local LVZrezim = Call("GetControlValue", "LVZrezim", 0) --nacti hodnotu voliciho prepinace do promenne
  4. local LVZstanoviste = Call("GetControlValue", "LVZstan", 0) --nacti hodnotu aktivniho stanoviste do promenne
  5. local LVZvypinac = ToBolAndBack(Call("GetControlValue", "LVZhv", 0)) --vrat bool pro stav HV LVZ
  6. local LVZstart = ToBolAndBack(Call("GetControlValue", "LVZstart", 0)) --vrat bool pro tlacitko startu bezkontaktniho menice
  7. local LVZzkouseni = false --definuj volbu zkouseni
  8.  
  9. if baterie == 1 then
  10.     if LVZnapeti < 1 and LVZvypinac then --pokud je napeti mensi nez 1 (24V) a je sepnuty vypinac VZ
  11.         LVZnapeti = LVZnapeti + cas --napeti roste umerne s casem PC - kompenzace malych FPS
  12.         Call("SetControlValue", "LVZnapeti", 0, LVZnapeti) --zapis hodnoty Vmetru
  13.     end
  14.  
  15.     if LVZvypinac and LVZrezim < 0.25 and releEPV and soupatkoVZ == 0 then --pokud je zapaty HV, rezim je provoz, bezkontaktni menic bezi a je natazene soupatko, je VZ aktivni
  16.         kontrolaBdelosti = true
  17.     elseif LVZvypinac and LVZrezim < 0.25 then --pokud je zapaty HV a rezim je provoz a zaroven neni natazene soupatko, nebo vubec nebezi bezkontaktni menic
  18.         releEPV = false --rozhod rele EPV
  19.         kontrolaBdelosti = false
  20.         soupatkoVZ = 1 --odpadni soupatko
  21.     end
  22.     if LVZvypinac and releEPV and LVZrezim > 0.25 and LVZrezim < 0.75 and soupatkoVZ == 0 then --je zapate HV, menic bezi, rezim je zkouseni a je natazene soupatko
  23.         kontrolaBdelosti = true
  24.         LVZzkouseni = true --aktivuj volbu "zkouseni"
  25.     elseif LVZvypinac and LVZrezim > 0.25 and LVZrezim < 0.75 then --pokud je zapaty HV a rezim je testovani a nejsou splnene podm. vyse
  26.         releEPV = false --rozhod rele EPV
  27.         kontrolaBdelosti = false
  28.         soupatkoVZ = 1 --odpadni soupatko
  29.     end
  30.     if LVZstart and LVZrezim > 0.75 and LVZvypinac then --pokud je rezim postrk a je zapaty vypinac, je mozne nazhavit bezkontaktni menic
  31.         releEPV = true --natahni rele EPV
  32.         soupatkoVZ = 0 --natahuje soupatko
  33.     end
  34.     if LVZrezim > 0.75 then --pokud je rezim postrk
  35.         kontrolaBdelosti = false
  36.         if not LVZvypinac then --zaroven pokud je zapaty HV
  37.             soupatkoVZ = 0 --pritahni soupatko
  38.         end
  39.     end
  40.     if not LVZvypinac then --pokud je vypaty vypinac LVZ
  41.         releEPV = false --rozhod rele EPV
  42.         kontrolaBdelosti = false
  43.         if LVZrezim < 0.75 then --pokud je rezim vlak
  44.             soupatkoVZ = 1 --odpada soupatko - v rezimu postrk zustava, soupatko drzi
  45.         end
  46.         Call("SetControlValue", "LVZmenic", 0, 0)
  47.     else --pokud bezi bezkontaktni menic, tj. je zapaty HV a baterie, sviti jeho kontrolka
  48.         Call("SetControlValue", "LVZmenic", 0, 1)
  49.     end
  50. end
  51.    
  52. if LVZnapeti > 0 and (not LVZvypinac or baterie ~= 1) then --pokud je na Vmetru napeti a je vypaty HV
  53.     LVZnapeti = LVZnapeti - cas*2 --zmiz napeti
  54.     Call("SetControlValue", "LVZnapeti", 0, LVZnapeti) --zapis napeti
  55. end
  56.  
  57. --zakomentovane, LVZ ma vlastni privod mimo stykac baterii
  58.  
  59. if baterie ~= 1 then
  60.     releEPV = false --rozhod rele EPV
  61.     soupatkoVZ = 1
  62.     kontrolaBdelosti = false
  63.     Call("SetControlValue", "LVZmenic", 0, 0)
  64. end
  65.  
  66. if LVZrezim > 0.75 then  --rezim posun
  67.     if baterie == 1 and LVZstanoviste < 0.5 then --pokud je zapnuty HV, sviti vybaveni
  68.         Call("SetControlValue", "LVZzivak", 0, 1)
  69.     else
  70.         Call("SetControlValue", "LVZzivak", 0, 0)
  71.     end
  72. end
  73.  
  74. Call("SetControlValue", "LVZvybaveni", 0, Call("GetControlValue","LVZzivak",0)) --kontrolka vybaveni
  75.  
  76. local kodNavesti = LVZ(Call("GetControlValue","SkutecnyKod",0),Call("GetControlValue","LVZzivak",0),cas,ToBolAndBack(Call("GetControlValue", "LVZmenic", 0)) and LVZstanoviste < 0.5)
  77. --zavolej fci LVZ (fakove poruchy prenosu) a predej ji:
  78. --      -skutecny prijaty kod z navestidla
  79. --      -stav kontrolky vybaveni
  80. --      -cas od posledniho update, ale realny z PC, nikoli "skoro cas" ze hry
  81. --      -info o zapnutem / vypnutem LVZ
  82.  
  83. Call("SetControlValue","Mirel",0, kodNavesti) --watafuck??? Sorry, ale fakt netusim :D
  84.  
  85. if kontrolaBdelosti and baterie == 1 and soupatkoVZ == 0 then --samotna LVZ
  86.     LVZtimer = LVZtimer + cas
  87.     if LVZreset <= 0.25 and LVZresetOld == 1 and LVZstanoviste < 0.5 then
  88.         if LVZtimer > 7 then
  89.             LVZtimer = 0
  90.         end
  91.         LVZresetOld = 0
  92.     end
  93.     if valcePrimocinne >= 1.8 and not LVZzkouseni then
  94.         LVZtimer = 0
  95.     end
  96.     if kodNavesti == 2 or kodNavesti == 4 then
  97.         if LVZreset >= 0.25 and LVZstanoviste < 0.5 then
  98.             nadbytecnaObsluha = true
  99.             Call ("SetControlValue", "ZivakPip", 0, 1)
  100.         end
  101.         if LVZtimer > 10 then
  102.             LVZtimer = 10
  103.         end
  104.     end
  105.     if LVZreset <= 0.25 or LVZstanoviste > 0.5 then
  106.         nadbytecnaObsluha = false
  107.     end
  108.     if LVZtimer <= 7 and LVZstanoviste < 0.5 then
  109.         Call ("SetControlValue", "LVZzivak", 0, 1)
  110.         if not nadbytecnaObsluha then
  111.             Call ("SetControlValue", "ZivakPip", 0, 0)
  112.         end
  113.     elseif LVZtimer <= 15 and LVZstanoviste < 0.5 then
  114.         if LVZreset >= 0.25 then
  115.             Call ("SetControlValue", "LVZzivak", 0, 1)
  116.         else
  117.             Call ("SetControlValue", "LVZzivak", 0, 0)
  118.         end
  119.         if not nadbytecnaObsluha then
  120.             Call ("SetControlValue", "ZivakPip", 0, 0)
  121.         end
  122.     elseif LVZtimer <= 19 and LVZstanoviste < 0.5 then
  123.         if LVZreset >= 0.25 then
  124.             Call ("SetControlValue", "LVZzivak", 0, 1)
  125.         else
  126.             Call ("SetControlValue", "LVZzivak", 0, 0)
  127.         end
  128.         Call ("SetControlValue", "ZivakPip", 0, 1)
  129.     elseif LVZtimer > 19 then
  130.         Call ("SetControlValue", "ZivakPip", 0, 0)
  131.         if LVZreset >= 0.25 and LVZstanoviste < 0.5 then
  132.             Call ("SetControlValue", "LVZzivak", 0, 1)
  133.         else
  134.             Call ("SetControlValue", "LVZzivak", 0, 0)
  135.         end
  136.         soupatkoVZ = 1
  137.     elseif LVZstanoviste > 0.5 then
  138.         Call ("SetControlValue", "LVZzivak", 0, 0)
  139.     end
  140. else
  141.     Call ("SetControlValue", "ZivakPip", 0, 0)
  142.     Call ("SetControlValue", "LVZzivak", 0, 0)
  143.     LVZtimer = 0
  144. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement