Warunki w SUPLA Scripts - pomysły

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Awatar użytkownika
fracz
Posty: 1857
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

śr paź 14, 2020 9:01 pm

Tak, to co obserwujecie wynika z tego że "przebijacie" północ i potem jest tak jak napisał @klew, że pierwsza w nocy jest "mniejsza" od siedemnastej. Ot, ułomność tego mechanizmu.

Jeśli macie wątpliwość co jest zwracane ze składowych warunku to wpiszcie sobie to w pole "odpowiedź" - dostaniecie wydrukowane to co jest brane pod uwagę w logice i będzie łatwiej dojść dlaczego coś nie działa albo co jest nieintuicyjne.

Rzeczywiście w przykładach pomyliłem plusy z minusami.
wsosniak
Posty: 447
Rejestracja: sob cze 02, 2018 8:02 am

śr paź 14, 2020 9:12 pm

Xoggo pisze:
śr paź 14, 2020 7:04 pm
@fracz, jedyne co mi działa to:

Kod: Zaznacz cały

{{ time() > sunsetTime() }} {{ time() < sunriseTime() }}
.............
to nie ma prawa działać.
Jesli chcesz aby cos się wykonywało tylko kiedy jest ciemno (czyli przed wschodem słońca albo po jego zachodzie) to musi to wyglądać tak ( tam musi być "or" zamiast nawiasów :) ):
{{ time() > sunsetTime() or time() < sunriseTime() }}

a jeśli chcesz aby coś się wykonywało tylko wtedy kiedy jest jasno to ( "and" ) i odwrotnie znaki większości i mniejszości:
{{ time() < sunsetTime() and time() > sunriseTime() }}

jesli chcesz dodatowo zastosowac przesuniecie czasowe to PO oznacza - a PRZED to +. Przykład :
time("-120 minutes") > sunriseTime()
oznacza ze spełniony będzie warunek dopiero 2 h PO wschodzie słońca.

Zachęcam do przypomnienia sobie działu matematyki "Zbiory i podzbiory" (klasa 1 liceum) . Wiem , pamietam :) na tych lekcjach wszyscy ziewali i mówili że nigdy im się to w życiu nie przyda :) też do nich należałem :)
Awatar użytkownika
Xoggo
Posty: 163
Rejestracja: ndz mar 29, 2020 10:03 pm
Lokalizacja: Zbąszynek

śr paź 14, 2020 9:27 pm

Jak to się mówi, człowiek uczy się przez całe życie, za wyjątkiem lat szkolnych. ;)

wsosniak, czyli 2h przed zachodem i 1h po wschodzie to poprawnie będzie tak :?:

Kod: Zaznacz cały

{{ time('-180 minutes') > sunsetTime() or time('+120 minutes') < sunriseTime() }}
Zibi
Posty: 252
Rejestracja: śr lip 31, 2019 9:20 am
Lokalizacja: Białogard

śr paź 14, 2020 9:43 pm

klew pisze:
śr paź 14, 2020 8:34 pm
PuteR pisze:
śr paź 14, 2020 8:13 pm
Xoggo pisze:
wt paź 13, 2020 7:24 am

Kod: Zaznacz cały

{{ time('+180 minutes') > sunsetTime() }} {{ time('-120 minutes') < sunriseTime() }}
180 minut przed zachodem
120 minut po wschodzie
8-)
Dzięki za pomoc, ale daje coś nie tak z tym warunkiem. Pisząc ten post o godzinie 22:00 warunek jest nie spełniony a przecież jest już po zachodzie słońca. :|
Wydaje mi się, że: metody time(), sunsetTime(), sunriseTime() zwracają tylko godzinę, np. aktualnie:
time('+180 minutes') -> 01:30
sunsetTime() -> 17:42

Czy 01:30 > 17:42? NIE

Te metody musiałby zwracać czas z datą, aby dało się to porównywać.

Druga sprawa, jeśli chcesz zrobić "180 minut po zachodzie słońca", to to powinno wyglądać tak {{ time('-180 minutes') > sunsetTime() }}
Jeśli dodasz 180 minut, to warunek powinien być spełniony 180 minut przed zachodem.
@klew i tak wpisałem jak zalecileś i zmieniając czas po zachodzie słońca kiedy ma się coś wykonać widać jak podświetla się warunek spełniony lub nie w zależności jaki czas wpiszemy. Tylko nie wiem dlaczego scena nie wykonuje się mimo że warunek został spełniony mogę ją tylko wykonać ręcznie z poziomu skryptu "wykonaj scenę" tylko działa.
Awatar użytkownika
Xoggo
Posty: 163
Rejestracja: ndz mar 29, 2020 10:03 pm
Lokalizacja: Zbąszynek

śr paź 14, 2020 9:48 pm

Zibi, spróbuj tak
roll.png
roll.png (37.97 KiB) Przejrzano 109 razy
wsosniak
Posty: 447
Rejestracja: sob cze 02, 2018 8:02 am

śr paź 14, 2020 9:54 pm

Xoggo pisze:
śr paź 14, 2020 9:27 pm
Jak to się mówi, człowiek uczy się przez całe życie, za wyjątkiem lat szkolnych. ;)

wsosniak, czyli 2h przed zachodem i 1h po wschodzie to poprawnie będzie tak :?:

Kod: Zaznacz cały

{{ time('-180 minutes') > sunsetTime() or time('+120 minutes') < sunriseTime() }}
1 godzina to 60 min a dwie to 120min :)
- i + pomyliłeś

jak stosujesz takie duze przesuniecia czasowe to jeszcze taką korekte trzeba zastowować bo inaczej po 22:00 i przed 1:00 warunek nie byłby spełniony

Kod: Zaznacz cały

{{ time("+120 minutes") > sunsetTime() or time() > '22:00' or time("-60 minutes") < sunriseTime() or time() < '01:00' }}
wsosniak
Posty: 447
Rejestracja: sob cze 02, 2018 8:02 am

śr paź 14, 2020 9:59 pm

Xoggo pisze:
śr paź 14, 2020 9:48 pm
Zibi, spróbuj tak
roll.png
wyzwalacz w oparciu o taki czas nie zadziała . moje pytanie viewtopic.php?p=76391#p76391
i dalej odpowiedź @fracz-a
Awatar użytkownika
Xoggo
Posty: 163
Rejestracja: ndz mar 29, 2020 10:03 pm
Lokalizacja: Zbąszynek

śr paź 14, 2020 10:01 pm

No tak siedząc po ciemaku i na zmęczeniu to te minuty jakoś szybciej lecą ;)
wsosniak, dzięki, biorę na przetestowanie.
Zibi
Posty: 252
Rejestracja: śr lip 31, 2019 9:20 am
Lokalizacja: Białogard

śr paź 14, 2020 10:01 pm

Xoggo pisze:
śr paź 14, 2020 9:48 pm
Zibi, spróbuj tak
roll.png
Probowalem wcześniej, ale w to pole czasowe trzeba wpisać czas w formie cron'a w tej formie nie pójdzie.
@wsosniak masz pomysł jak rozwiązać mój problem?
wsosniak
Posty: 447
Rejestracja: sob cze 02, 2018 8:02 am

śr paź 14, 2020 10:17 pm

Zibi pisze:
śr paź 14, 2020 10:01 pm
Xoggo pisze:
śr paź 14, 2020 9:48 pm
Zibi, spróbuj tak
roll.png
Probowalem wcześniej, ale w to pole czasowe trzeba wpisać czas w formie cron'a w tej formie nie pójdzie.
@wsosniak masz pomysł jak rozwiązać mój problem?
viewtopic.php?p=76397#p76397
ale moze to byc tez fizyczny przycisk
u mnie to chodzi super od kilku dni
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”