Skocz do zawartości
  • 0

Gadżety po starcie areny [BEDWARS]


Pytanie

Witam, potrzebuję skryptu który umożliwi działanie wszystkich dodatków (Z GadgetsMenu) 2minuty po starcie areny (bedwars). Aktualnie na bedwars używam pluginu Bedwars1058.
Ktoś by się podją? z góry, dziękuje i pozdrawiam.

Edytowane przez pet36837
Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/
Udostępnij na innych stronach

Rekomendowane odpowiedzi

  • 0
Godzinę temu, CoFFeIN04 napisał:

Na składnię aktualnie nie będę zwracać uwagi,

Spójrz w swój kod, dlaczego trigger: ma dwukropek na końcu linijki, a w następnej linijce nie dałeś jednego więcej tabulatora.

 

lol, dałem. po wklejeniu z  notepada sie coś zmieniło.

 

Godzinę temu, CoFFeIN04 napisał:

Na składnię aktualnie nie będę zwracać uwagi,

Spójrz w swój kod, dlaczego trigger: ma dwukropek na końcu linijki, a w następnej linijce nie dałeś jednego więcej tabulatora.

 

    trigger:
        if getNewState() is GameState.starting:

	trigger:
		if getNewState() is GameState.starting:

teraz dobrze?

Nieaktywny

Łączę posty.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282770
Udostępnij na innych stronach

  • 0

Co do skript-reflecta, niekoniecznie umiem pomóc, ale najpierw ogarnij te tabulatory, żeby wszystkie były dobrze. Wcześniej dałem Ci już wskazówki jak to zrobić. Potem myślę, że @Kormic pomoże z kodem 

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282777
Udostępnij na innych stronach

  • 0
Teraz, pet36837 napisał:

a teraz możesz dalej pomóć?, staram się zrozumieć, ale nie zawsze idzie. Z góry dzięki.

 

W poradniku podanym przeze mnie zawarte jest wszystko. Bardzo dobrze, że chcesz samemu to zrobić, ale poradnik sam się nie przeczyta, ty to musisz zrobić.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282778
Udostępnij na innych stronach

  • 0
Teraz, CoFFeIN04 napisał:

Co do skript-reflecta, niekoniecznie umiem pomóc, ale najpierw ogarnij te tabulatory, żeby wszystkie były dobrze. Wcześniej dałem Ci już wskazówki jak to zrobić. Potem myślę, że @Kormic pomoże z kodem 

dzięki, postaram się ogarnąc. Wielkie dzięki za pomoc. zaraz wstawie poprawiony kod i może ktoś luknie

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282779
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

W poradniku podanym przeze mnie zawarte jest wszystko. Bardzo dobrze, że chcesz samemu to zrobić, ale poradnik sam się nie przeczyta, ty to musisz zrobić.

tam chodzi o tabowanie, tak? postaram przeczytać, lecz aż tak dobry w angielskim nie jestem żeby przetłumaczyć, ale postaram się na przyklady zobaczyc.

 

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282780
Udostępnij na innych stronach

  • 0
import:
	java.lang.System
	org.bukkit.event.Event.GameStateChangeEvent
    getNewState()
on GameState.starting:
	set {blockGadgets} to now
command /g:
	trigger:
		if getNewState() is GameState.starting:
            set {_czas} to difference between {czasczekania::%player%} and now
				if {_czas} isn't less than 2 minutes:
				execute player command "say dziala"
					set {czasczekania::%player%} to now
		else:
			send "Gra nie wystartowala!"
				else:
					send "Poczekaj 2 minuty"

Teraz jest dobrze? starałem się zrozumieć przykłady.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282784
Udostępnij na innych stronach

  • 0
1 minutę temu, pet36837 napisał:

Teraz jest dobrze? starałem się zrozumieć przykłady.

1. Metoda getNewState() powinna się znaleźć w evencie.

2. Miałeś użyć eventu GameStateChangeEvent, nie enuma jako eventu.

3. W tym momencie nadpisałeś komendę /g przez co straci ona swoje pierwotne działanie. Użyj eventu 'on command'.

4. Nie wiem co tam u góry robi metoda getNewState().

4. Jeszcze raz przeczytaj ten poradnik, próbuj aż do skutku.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282794
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

1. Metoda getNewState() powinna się znaleźć w evencie.

2. Miałeś użyć eventu GameStateChangeEvent, nie enuma jako eventu.

3. W tym momencie nadpisałeś komendę /g przez co straci ona swoje pierwotne działanie. Użyj eventu 'on command'.

4. Nie wiem co tam u góry robi metoda getNewState().

4. Jeszcze raz przeczytaj ten poradnik, próbuj aż do skutku.

mógłbyś napisać mi ten skrypt?, zaraz padne. chyba poprostu sprobuje innych rozwiazan, ale watpie ze beda dzialac. Próbowałem próbować aż do końca, ale nie jestem w stanie. Dzięki wszystkim za pomoc i za czas.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282797
Udostępnij na innych stronach

  • 0

Najlepiej zacznij od nauki czegoś prostszego, bo zaczynanie od Skript-reflecta (czyli prawdę mówiąc Javy) nie znając podstaw jest słabe. https://wiki.skript.pl/ - poczytaj trochę na tej stronie.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282800
Udostępnij na innych stronach

  • 0
1 minutę temu, CoFFeIN04 napisał:

Najlepiej zacznij od nauki czegoś prostszego, bo zaczynanie od Skript-reflecta (czyli prawdę mówiąc Javy) nie znając podstaw jest słabe. https://wiki.skript.pl/ - poczytaj trochę na tej stronie.

mam kolege który pisze w js, javie i d.js pewnie go spytam, to pomoże. dzięki wielkie za pomoc, i za spędzony czas.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282803
Udostępnij na innych stronach

  • 0
10 minut temu, pet36837 napisał:

mógłbyś napisać mi ten skrypt?, zaraz padne. chyba poprostu sprobuje innych rozwiazan, ale watpie ze beda dzialac. Próbowałem próbować aż do końca, ale nie jestem w stanie. Dzięki wszystkim za pomoc i za czas.

Jesteś pewien, że mam ci to napisać? Nie chcesz samemu próbować do końca?

Mogę to napisać, ale muszę mieć pewność, że całkowicie się poddałeś.

Jeżeli mam to napisać, wystarczy jedynie ta blokada gadżetów, tak? To wszystko?

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282806
Udostępnij na innych stronach

  • 0
1 godzinę temu, Kormic napisał:

Jesteś pewien, że mam ci to napisać? Nie chcesz samemu próbować do końca?

Mogę to napisać, ale muszę mieć pewność, że całkowicie się poddałeś.

Jeżeli mam to napisać, wystarczy jedynie ta blokada gadżetów, tak? To wszystko?

tak, byłbym wdzięczny

 

Godzinę temu, pet36837 napisał:

tak, byłbym wdzięczny

dzięki kodzie, bym zobaczył co miałem źle.

Nieaktywny

Łączę posty.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282807
Udostępnij na innych stronach

  • 0
22 minuty temu, pet36837 napisał:

tak, byłbym wdzięczny

W takim razie uznaję to za zlecenie.

import:
	com.andrei1058.bedwars.api.events.gameplay.GameStateChangeEvent
	com.andrei1058.bedwars.api.arena.GameState
	
function translateTimespan(t: timespan) :: text:
	set {_t} to "%{_t}%"
	set {_eng::*} to "years", "year", "months", "month", "days", "day", "hours", "hour", "minutes", "minute", "seconds", "second" and " and "
	set {_pol::*} to "lat", "rok", "miesięcy", "miesiąc", "dni", "dzień", "godzin", "godzinę", "minut", "minutę", "sekund", "sekundę" and ", "
	loop {_eng::*}:
		replace all loop-value with {_pol::%loop-index%} in {_t}
	return {_t}	
	
on GameStateChangeEvent:
	event.getNewState() == GameState.playing
	set {blockGadgets} to now
	
on command "g":
	{blockGadgets} is set
	difference between {blockGadgets} and now is less than 2 minutes
	set {_t} to {blockGadgets}
	add 2 minutes to {_t}
	send "&cMożesz używać gadżety za &6%translateTimespan(difference between {_t} and now)%&c!" to player

Powinno pomóc w zrozumieniu. Co do tego GameState, tak jak wspomniałem wcześniej, nie wiem czy 'starting', czy też 'playing' odpowiada za start areny. Mimo wszystko wydaje mi się, że to będzie te drugie.

Ten skrypt blokuje jedynie komendę "/g", więc w twoim interesie leży zrobienie tego tak, aby gracze mogli wybierać gadżety dopiero po starcie areny (czyli nie mogą ani w lobby, ani w poczekalni).

Jeżeli nie chcesz tego robić w ten sposób, będziesz musiał dodać sobie przykładowo nazwy wszystkich gadżetów do jakiejś listy i przy kliknięciu prawym przyciskiem myszy sprawdzamy czy ta lista zawiera nazwę naszego przedmiotu.

Jeszcze jest jedno, myślę, że najlepsze rozwiązanie. Mianowicie importujemy odpowiednie klasy z GadgetsMenu API pozwalające na sprawdzenie przykładowo czy przedmiot w ręce gracza jest jakimkolwiek gadżetem.

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282835
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

W takim razie uznaję to za zlecenie.


import:
	com.andrei1058.bedwars.api.events.gameplay.GameStateChangeEvent
	com.andrei1058.bedwars.api.arena.GameState
	
function translateTimespan(t: timespan) :: text:
	set {_t} to "%{_t}%"
	set {_eng::*} to "years", "year", "months", "month", "days", "day", "hours", "hour", "minutes", "minute", "seconds", "second" and " and "
	set {_pol::*} to "lat", "rok", "miesięcy", "miesiąc", "dni", "dzień", "godzin", "godzinę", "minut", "minutę", "sekund", "sekundę" and ", "
	loop {_eng::*}:
		replace all loop-value with {_pol::%loop-index%} in {_t}
	return {_t}	
	
on GameStateChangeEvent:
	event.getNewState() == GameState.playing
	set {blockGadgets} to now
	
on command "g":
	{blockGadgets} is set
	difference between {blockGadgets} and now is less than 2 minutes
	set {_t} to {blockGadgets}
	add 2 minutes to {_t}
	send "&cMożesz używać gadżety za &6%translateTimespan(difference between {_t} and now)%&c!" to player

Powinno pomóc w zrozumieniu. Co do tego GameState, tak jak wspomniałem wcześniej, nie wiem czy 'starting', czy też 'playing' odpowiada za start areny. Mimo wszystko wydaje mi się, że to będzie te drugie.

Ten skrypt blokuje jedynie komendę "/g", więc w twoim interesie leży zrobienie tego tak, aby gracze mogli wybierać gadżety dopiero po starcie areny (czyli nie mogą ani w lobby, ani w poczekalni).

Jeżeli nie chcesz tego robić w ten sposób, będziesz musiał dodać sobie przykładowo nazwy wszystkich gadżetów do jakiejś listy i przy kliknięciu prawym przyciskiem myszy sprawdzamy czy ta lista zawiera nazwę naszego przedmiotu.

Jeszcze jest jedno, myślę, że najlepsze rozwiązanie. Mianowicie importujemy odpowiednie klasy z GadgetsMenu API pozwalające na sprawdzenie przykładowo czy przedmiot w ręce gracza jest jakimkolwiek gadżetem.

dzięki wielkie, można zamknąć skorzystam ze skryptu w dalszych celach nauczenia sie.

 

Odnośnik do komentarza
https://skript.pl/temat/44972-gad%C5%BCety-po-starcie-areny-bedwars/#findComment-282840
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...