Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[DL] [Skript] Dokładny szablon odebrania nagrody po określonym czasie bez niedokładnego wait...


Rekomendowane odpowiedzi

Opublikowano

<------------------------------ Reklama

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<------------------------------ Reklama

 

Witam.

Pewnie wiele osób ma problem z dokładnym czasem najbardziej dokładnym czasem w skript najczęściej przychodzi nam do głowy "wait [liczba] [seconds, minutes, hours itp]" jednak w przypadku dni, tygodni miesięcy na pewno trafi nam się chociaż 1 restart serwera przez co skrypt nie będzie nam dalej odliczać i musimy kombinować.

Ostatnio zastanawiałem się jak ten fakt naprawić i wymyśliłem coś takiego skrypt jest w 100% autorski i zezwalam na jego kopiowanie do własnych celów oraz publikacji.

every 1 seconds: 
    add 1 to {czas} 
    if {czas} is not set: 
        set {czas} to 0 



command /odbierzexpa: 
    trigger: 
        if player has permission "vip": 
            if {czaswziecia.%player%} is not set: 
                set {czaswziecia.%player%} to {czas} 
                add 1209600 to {czaswziecia.%player%} 
                set the player's level to 1000 
            else if {czas} is bigger than {czaswziecia.%player%}: 
                set {czaswziecia.%player%} to {czas} 
                add 1209600 to {czaswziecia.%player%} 
                set the player's level to 1000 
            else: 
                send "&4Nie minelo jeszcze 14 dni !" 

Teraz się zapewne zastanawiacie jak to działa i nie wiecie w ogóle o co chodzi ale wam to wytłumaczę..

Na samej górze widzimy iż co sekundę dodaje nam 1 do do zmiennej {czas} oczywiście możemy tam zmienić, że co minute itp ale w tedy będzie mniej dokładniej o wiele lepiej sprawuję się co sekundę.

Niżej widzimy już komendę /odbierzexpa daję ona nam możliwość, że gdy mamy vipa możemy odebrać 1000 expa jednak możemy robić to co 2 tygodnie.

Ale jak to działa ? Już tłumaczę ;)

Gdy pierwszy raz wpisujemy tą komendę i mamy vipa oczywiście otrzymamy te 1000 expa bez żadnych przeszkód.

Jednak to co się wykonuję może was zaskoczyć.

Otóż ustawia naszą zmienną na taką cyfrą jaką ma nasz czas po czym dodaje do niej 1209600 (2 tygodnie w sekundach).

Dzięki temu nasz zmienna będzie cały czas się dodawać jednak nasz serwer musi być włączony.

Jeżeli zmienna {czas} przekroczy przekroczy naszą zmienną czyli te 2 tygodnie będziemy mogli ponownie odebrać naszego expa i ponownie doda do naszej zmiennej 1209600 przez co musimy czekać kolejne 2 tygodnie.

Mam nadzieję, że poradnik przydatny ;)

Opublikowano

Okej, tylko zamiast wiadomości:

    send "&4Nie minelo jeszcze 14 dni !" 

Lepiej by zrobić dokładny licznik, coś w stylu

{czaswziecia.%player%}-14

Czy coś :x

Opublikowano

Okej, tylko zamiast wiadomości:

    send "&4Nie minelo jeszcze 14 dni !" 

Lepiej by zrobić dokładny licznik, coś w stylu

{czaswziecia.%player%}-14

Czy coś :x

Ok tylko tak naprawdę co ozncza {zmienna}-14 bo za bardzo nie wiem a zawsze lepiej coś więcej wiedzieć :x 

Opublikowano

Ok tylko tak naprawdę co ozncza {zmienna}-14 bo za bardzo nie wiem a zawsze lepiej coś więcej wiedzieć :x 

Proste obliczenie, gdzie ,,-" to odejmowanie. Wiesz, by gracz mógł wiedzieć, kiedy następne odebranie exp, choć lepiej było by tak:

%difference between 1209600 seconds and {czaswizecia.%player%}%
Opublikowano

 

Proste obliczenie, gdzie ,,-" to odejmowanie. Wiesz, by gracz mógł wiedzieć, kiedy następne odebranie exp, choć lepiej było by tak:

%difference between 1209600 seconds and {czaswizecia.%player%}%

Ok z jednej strony domyślałem się co to oznacza jednak trochę dziwiło mnie, że napisałeś -14 a nie -1209600 więc trochę mnie to zaskoczyło ;PP

Opublikowano

zamiast:

every 1 seconds: 

daj

every 1 real seconds: 

Poniewaz bd liczyc czas mc.

Opublikowano

zamiast:

every 1 seconds: 

daj

every 1 real seconds: 

Poniewaz bd liczyc czas mc.

Sorry ale nie zgodzę się z tobą to nie ma większego znaczenia jakbym dał every minecraft seconds: to bym się zgodził ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...