Skocz do zawartości
  • 0
DnSu

Zwiększanie wartości int dla gracza o 1

pytanie

Użytkownik

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: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! :/

 

Edytowane przez DnSu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Użytkownik
  • 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++);

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×