Skocz do zawartości


Zdjęcie

Poprawa kody skryptu


  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 14:52

Witam.

 

Posiadam skrypt z kodem:

on right click with firework star:
    if player's tool's name is "&6&ltest":
        execute console command "pex user %sender% add essentials.repair"
        execute console command "broadcast test"
        remove 1 firework star named "&6&ltest" from player
        wait 3 minutes
        execute console command "pex user %sender% remove essentials.repair"
        send "test"
command /ssdd1:
    permission: ssdd1
    permission message: &cNie Masz Dostepu Do Tej Komendy!
    trigger:
        execute console command "give %sender% fireworkstar 1 name:&6&ltest"

Ogólnie jest tak, że jak gracz będzie posiadał w rączce odpowiedni item i kliknie prawym to dostaje uprawnienie na komendę /repair i po 3 minutach uprawnienie zostanie mu odebrane. Niestety gdy wyłączę serwer to gracz nie straci uprawnienia na komendę repair i będzie miał ją na zawsze.

 

Jest ktoś w stanie przerobić ten kod by po wyłączeniu serwera czas nadal się odliczał?


Użytkownik Miszczcraft edytował ten post 10 March 2018 - 14:54


craftportal

Craftserve to największy i najlepszy polski hosting serwerów Minecraft, jest solidny i tani więc go polecam

#2 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 15:07

Zamiast wait x minutes użyj:

set {zmienna.%player%} to now

oraz:

loop all players:
    if difference between {zmienna.%loop-player%} and now is greater than 3 minutes:
        #Dalszy kod

to "if difference ..." musisz wbić w pętle, która będzie wykonywać to co x czasu (im częściej tym bardziej zlaguje, ale będzie bardziej dokładne)

i zloopować każdego gracza wewnątrz niej - "loop all players"

np "every second", "every 5 seconds", etc.

 

@Edit

 

Ew. można by sprawdzić czy czas minął wtedy gdy gracz wykona komendę /repair.

Jeśli tak to zabrać mu upr. i zrobić "cancel event".


Użytkownik Katniss edytował ten post 10 March 2018 - 15:13

Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#3 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 16:02

on right click with firework star:
    if player's tool's name is "&6&ltesty":
        execute console command "pex user %sender% add essentials.repair"
        execute console command "broadcast testy"
        remove 1 firework star named "&6&ltesty" from player
        set {zmienna.%player%} to now
        loop all players:
            if difference between {zmienna.%loop-player%} and now is greater than 3 minutes:
                execute console command "pex user %sender% remove essentials.repair"
                send "&8testy"
command /zzdd:
    permission: zzsd
    permission message: &cNie Masz Dostepu Do Tej Komendy!
    trigger:
        execute console command "give %sender% fireworkstar 1 name:&6&ltesty"

Tak powinien wyglądać kod?

Mając taki kod przeładowanie skryptu działa poprawnie, ale niestety po tych 3 minutach nic się nie dzieje. Nie usuwa uprawnienia i nie wysyła wiadomości do gracza



#4 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 16:14

on right click with firework star:
    if player's tool's name is "&6&ltesty":
        execute console command "pex user %sender% add essentials.repair"
        execute console command "broadcast testy"
        remove 1 firework star named "&6&ltesty" from player
        set {zmienna.%player%} to now
        loop all players:
            if difference between {zmienna.%loop-player%} and now is greater than 3 minutes:
                execute console command "pex user %sender% remove essentials.repair"
                send "&8testy"
command /zzdd:
    permission: zzsd
    permission message: &cNie Masz Dostepu Do Tej Komendy!
    trigger:
        execute console command "give %sender% fireworkstar 1 name:&6&ltesty"
Tak powinien wyglądać kod?
Mając taki kod przeładowanie skryptu działa poprawnie, ale niestety po tych 3 minutach nic się nie dzieje. Nie usuwa uprawnienia i nie wysyła wiadomości do gracza

 

No nic dziwnego, że nic sie nie dzieje, skoro sprawdzi czy upłyneły te 3 minuty jedynie po kliknięciu tej gwiazdki.

Musisz to wbić w osobny event

every x seconds:
    #Tu

Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#5 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 16:28

 

No nic dziwnego, że nic sie nie dzieje, skoro sprawdzi czy upłyneły te 3 minuty jedynie po kliknięciu tej gwiazdki.

Musisz to wbić w osobny event

every x seconds:
    #Tu

A mógłbyś podesłać cały kod a nie częściowo?



#6 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 17:24

A mógłbyś podesłać cały kod a nie częściowo?

A co to za problem samemu przekopiować, zamiast iść na łatwiznę? To jest tak banalne, że myślałem, że nie będę musiał podsyłać całego kodu...

 


Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#7 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 18:49

Aktualnie jest tak, że wykonuje się komenda z usuwaniem uprawnienia co sekundę, co będzie powodowało lagi. 

 

Da redę zrobić tak, że po kliknięciu prawym z itemkiem zacznie się odliczać czas i jeśli czas minie to dopiero wtedy wykona się komenda z usuwaniem uprawnień?



#8 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 20:59

Da redę zrobić tak, że po kliknięciu prawym z itemkiem zacznie się odliczać czas i jeśli czas minie to dopiero wtedy wykona się komenda z usuwaniem uprawnień?

To miałeś na samym początku. Zanim poprosiłeś o pomoc.


Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#9 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 21:36

To miałeś na samym początku. Zanim poprosiłeś o pomoc.

Tak ale gdy wyłączyłem i włączyłem serwer to czas przestał się odliczać i gracz dostawał uprawnienie na zawsze. Mi właśnie chodzi o to, jak zrobić by czas nawet przy wyłączonym serwerze się odliczał.


Użytkownik Miszczcraft edytował ten post 10 March 2018 - 21:36


#10 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 21:42

Tak ale gdy wyłączyłem i włączyłem serwer to czas przestał się odliczać i gracz dostawał uprawnienie na zawsze. Mi właśnie chodzi o to, jak zrobić by czas nawet przy wyłączonym serwerze się odliczał.

Widze, że się powtarzasz.

Zamiast wait x minutes użyj:

set {zmienna.%player%} to now

oraz:

loop all players:
    if difference between {zmienna.%loop-player%} and now is greater than 3 minutes:
        #Dalszy kod

to "if difference ..." musisz wbić w pętle, która będzie wykonywać to co x czasu (im częściej tym bardziej zlaguje, ale będzie bardziej dokładne)

i zloopować każdego gracza wewnątrz niej - "loop all players"

np "every second", "every 5 seconds", etc.

 

@Edit

 

Ew. można by sprawdzić czy czas minął wtedy gdy gracz wykona komendę /repair.

Jeśli tak to zabrać mu upr. i zrobić "cancel event".


Użytkownik Katniss edytował ten post 10 March 2018 - 21:42

Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#11 Miszczcraft

Miszczcraft

    Bywalec

  • Użytkownik
  • 185 postów
  • SebaG2000

Napisano 10 March 2018 - 22:06

Aktualnie jest tak, że wykonuje się komenda z usuwaniem uprawnienia co sekundę, co będzie powodowało lagi. 

 

Da redę zrobić tak, że po kliknięciu prawym z itemkiem zacznie się odliczać czas i jeśli czas minie to dopiero wtedy wykona się komenda z usuwaniem uprawnień?

 

Chodzi mi o to, czy jest sposób by nie wysyłało co sekundę komendy związaną z zabieraniem uprawnienia tylko wtedy gdy określony czas minie



#12 Katniss

Katniss

    Twórca "Mrocznej klątwy"

  • Senior Moderator
  • 2947 postów
  • Katniss#2260
  • Katniss

Napisano 10 March 2018 - 22:28   Najlepsza odpowiedź

Popatrzyłem w PEx'a i znalazłem. (W skripcie się nie da inaczej niż Ci podałem)

syntax komendy: /pex user <user> timed add <permission> <lifetime in seconds> [world]

"pex user %player% timed add essentials.repair 180" - to wklepujesz zamiast tego co daje uprawnienia przy kliknięciu, da uprawnienie na 3 minuty do gracza, który kliknął item.
I możesz wywalić całą reszte związaną z odliczaniem.

Użytkownik Katniss edytował ten post 10 March 2018 - 22:29

Mapa Adventure mojego autorstwa - "Mroczna klątwa" v2.1 (Na wersję MC 1.13.2)
Questy, NPC, niestandardowe przedmioty, bossy, amulety, modele 3D, mana i wiele więcej! BEZ MODÓW!
 

Siege Settlements - coś lepszego niż typowy RTS - https://www.reddit.c...egeSettlements/


#13 Gość_Davidfab_*

Gość_Davidfab_*
  • Gość

Napisano 05 August 2022 - 23:31

By zobaczyć linki musisz się zalogować lub zarejestrować

dog antibiotics without vet prescription