Skocz do zawartości
  • 0

Zwiększanie wartości int dla gracza o 1


Pytanie

Witam, nie jestem dobry w programowaniu Java. Tak jak w tytule: Zwiększanie wartości int dla gracza o 1

Jak na razie udało mi się to zrobić, lecz nie dla gracza: 

 

Edytowane przez xAxee
Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
4 minuty temu, McKoxu napisał:

No to musisz mieć jakąś hashmape, objekt czy cokolwiek gdzie będzie się dało tak jakby przechowywać inta w graczu ;--;

Tego się obawiałem, że z hashmap'ą będą odpowiedzi. No to spróbuje.

Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/#findComment-183034
Udostępnij na innych stronach

  • 0

zacznijmy od tego czemu to jest statyczne ;/

Cytat

private static int x = 0;

 i czemu brak adnotacji eventhandler nad metoda ;/

Cytat

public void onEntityDamageByEntity(EntityDamageByEntityEvent event){

 

Czemu ludzie piszą o hashmapach zamiast mapach, przeciez hashmap implementuje po prostu interfejs map ;/ wiec jak macie na mysli mapy to piszcie mapy, a nie hashmapy, linkedmap itd.

chyba za duzo kguildsow i kodu z wyciekow ;/

 

No co do samego tematu:

uzywasz po prostu mapy, w kluczu trzymasz uuid gracza, a wartosc to integer.

czyli np:'

final Map<UUID, Integer> simpleMap = new HashMap<>(); //po prostu tworzysz sobie mapke, https://javastart.pl/baza-wiedzy/darmowy-kurs-java/klasy/interfejs-map
  
/*
ustawiasz wartosc w mapie dla uuid gracza na 1 | cos jak twoje statyczne x,
tylko jest dla okreslonego klucza (w tym przypadku uuid gracza)
*/
simpleMap.put(player.getUniqueId(), 1);

/*
moze zwracac null jezeli gracz nie jest w mapie, 
aby temu zapobiec mozesz po prostu sprawdzac czy gracz jest w mapie poprzez
containsKey "lub == null", lub uzywac Map#getOrDefault 
*/
simpleMap.get(player.getUniqueId()); 

 

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/#findComment-183038
Udostępnij na innych stronach

  • 0
6 minut temu, yooniks napisał:

zacznijmy od tego czemu to jest statyczne ;/

 i czemu brak adnotacji eventhandler nad metoda ;/

 

Czemu ludzie piszą o hashmapach zamiast mapach, przeciez hashmap implementuje po prostu interfejs map ;/ wiec jak macie na mysli mapy to piszcie mapy, a nie hashmapy, linkedmap itd.

chyba za duzo kguildsow i kodu z wyciekow ;/

 

No co do samego tematu:

uzywasz po prostu mapy, w kluczu trzymasz uuid gracza, a wartosc to integer.

czyli np:'


final Map<UUID, Integer> simpleMap = new HashMap<>(); //po prostu tworzysz sobie mapke, https://javastart.pl/baza-wiedzy/darmowy-kurs-java/klasy/interfejs-map
  
/*
ustawiasz wartosc w mapie dla uuid gracza na 1 | cos jak twoje statyczne x,
tylko jest dla okreslonego klucza (w tym przypadku uuid gracza)
*/
simpleMap.put(player.getUniqueId(), 1);

/*
moze zwracac null jezeli gracz nie jest w mapie, 
aby temu zapobiec mozesz po prostu sprawdzac czy gracz jest w mapie poprzez
containsKey "lub == null", lub uzywac Map#getOrDefault 
*/
simpleMap.get(player.getUniqueId()); 

 

Uznaje twą odpowiedź za prawidłową. EventHandler jest, tylko nie dałem go do hastebina.

Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/#findComment-183040
Udostępnij na innych stronach

  • 0
3 godziny temu, DnSu napisał:

Jakoś trudno mi ogarnąć zwiększanie wartości o +1 dla gracza za pomocą Mapy ;//

A co w tym trudnego? Zapisujesz value (wartości) za pomocą key(klucza).

Robisz mapke <Player, Integer>

i pobierasz int i = mapName.get(player); i wtedy otrzymujesz wartość (value) przypisaną dla gracza (key). 

Kiedy chcesz coś do niej (mapki) włożyć używasz mapName.put(key, value), czyli mapName.put(player, i++);

Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/#findComment-183147
Udostępnij na innych stronach

  • 0
Godzinę temu, KrejzolekPRO napisał:

A co w tym trudnego? Zapisujesz value (wartości) za pomocą key(klucza).

Robisz mapke <Player, Integer>

i pobierasz int i = mapName.get(player); i wtedy otrzymujesz wartość (value) przypisaną dla gracza (key). 

Kiedy chcesz coś do niej (mapki) włożyć używasz mapName.put(key, value), czyli mapName.put(player, i++);

Ogarnąłem w końcu.

Wiele błędów z początku było, ale udało się w końcu xD

Odnośnik do komentarza
https://skript.pl/temat/27652-zwi%C4%99kszanie-warto%C5%9Bci-int-dla-gracza-o-1/#findComment-183162
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ę...