Strefa OMSI

Pełna wersja: Dopełnienie spełnionego warunku-uproszczenie skryptu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,
w celu zwiększenia wyedukowania się, poprzez zapytanie się innych użytkowników, zwracam się z prośbą o to, czy można zapisać dany skrypt łącznie, w której to głównym warunkiem jest "engine_stand_random", ale dopełnieniem spełnionego warunku jest czas "Timer", (tak jak tutaj poniżej jest opisane).


Jak poniżej można zauważyć, chce uzyskać taki efekt, jeśli
engine_stand_random =1 ,to engine_stand_random_control1 =1,
ale gdy engine_stand_random =1 i t∈(2,5) ,to zmienne zmienią się na liczbę 0

Podejrzewam, że {else} odpowiada za w innym przypadku, a nie więcej, jeszcze, więc może to jest ten powód nieodpowiedniego działania skryptu, więc:
•jak powinienem to zapisać?
•czym w takim przypadku różni się warunek {else} od {endif}?

Kod PHP:
    (L.L.elec_busbar_main)
    {if}
        (
L.L.Timer) (L.S.Timegap) + (S.L.Timer)
    {else}
        
(S.L.Timer)
    {endif}
    
    (
L.L.Timer>
    {if}
        
(S.L.Timer)
        
1 3 random + (S.L.engine_stand_random)
    {endif}
        
    (
L.L.engine_stand_random=
    {if}
        
(S.L.engine_stand_random_control1)
    {else}
        (
L.L.Timer> &&
        (
L.L.Timer< &&
        {if}
            
(S.L.engine_stand_random_control2)
            
(S.L.engine_stand_random_control3)
        {endif}
    {endif}
    
    (
L.L.engine_stand_random=
    {if}
        
(S.L.engine_stand_random_control2)
    {else}
        (
L.L.Timer> &&
        (
L.L.Timer< &&
        {if}
            
(S.L.engine_stand_random_control2)
            
(S.L.engine_stand_random_control3)
        {endif}
    {endif}
    
    (
L.L.engine_stand_random>
    {if}
        
(S.L.engine_stand_random_control3)
    {else}
        (
L.L.Timer> &&
        (
L.L.Timer< &&
        {if}
            
(S.L.engine_stand_random_control2)
            
(S.L.engine_stand_random_control1)
        {endif}
    {endif} 
Oczywiście, mógłbym to zapisać w takiej postaci i wszystko będzie działać, natomiast chciałbym to bardziej skrócić
Kod PHP:
    (L.L.engine_stand_random=
    (
L.L.Timer> &&
    (
L.L.Timer< &&
    {if}
        
(S.L.engine_stand_random_control2)
        
(S.L.engine_stand_random_control3)
    {endif}
    
    (
L.L.engine_stand_random=
    {if}
        
(S.L.engine_stand_random_control2)
    {endif}
    
    (
L.L.engine_stand_random=
    (
L.L.Timer> &&
    (
L.L.Timer< &&
    {if}
        
(S.L.engine_stand_random_control1)
        
(S.L.engine_stand_random_control3)
    {endif}
    
    (
L.L.engine_stand_random>
    {if}
        
(S.L.engine_stand_random_control3)
    {endif}
    
    (
L.L.engine_stand_random>
    (
L.L.Timer> &&
    (
L.L.Timer< &&
    {if}
        
(S.L.engine_stand_random_control2)
        
(S.L.engine_stand_random_control1)
    {endif} 
Ależ oczywiście, że else nie oznacza "więcej". Materiałów odnośnie pętli if.. else jest masa w internecie. Else oznacza co się dzieje, gdy warunek z początku pętli if NIE jest spełniony. {endif} to po prostu zakończenie pętli if (end if) w języku skryptów OMSI.
Przekierowanie