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

Problem z przypisanie wartości do gracza


Gorgi123

Rekomendowane odpowiedzi

Opublikowano

Witam mam problem a mianowicie nie mam pomysłu np na zrobienie wartości przypisanej do gracza czyli np

@eventHandel

public void break(BlockBreakEvent e) {

e.getplayer().//tutaj coś ma zrobić żeby dodało do danej osoby np 1 punkt i potem zrobić komendę ,która pokaże ile wykopałeś klocków 

Komende Event potrafię zrobić ale dalej nic HashMape próbowałem zrobić i strasznie mi to wychodziło i nic nie działało 

Opublikowano

HashMap

public HashMap<Player, Integer> punkty = new HashMap<Player, Integer>();

Pobieranie wartości

int pkt = punkty.get(gracz);

Ustawianie

punkty.put(gracz, liczba);

// ja nie potrafię za bardzo pisać tego, więc nie wiem czy tak ma być.

// ale ja takiego czegoś urzywam.

Opublikowano

Jeśli Ci to nie wychodziło, to nie ma sensu byś w ogóle zaczął pisać pluginy. Wróć do podstaw javy. Nie mówię tego chamsko i udaje jakiegoś boga i guru, tylko po prostu będzie Ci znacznie łatwiej :].

Bo jak na razie to piszesz na zasadzie ,,C**j wie co to robi ale to coś musi robić". Nie rób tego błędu co inni i zacznij od javy..

 

Hashmapa będzie trzymać Ci wartości aż do wyłączenia serwera, później one znikną, a obstawiam, że chcesz zrobić coś ala statystyki. Musisz stworzyć Obiekt od gracza, w którym będziesz trzymał zmienne, a no i zapisać go do bazy. :D

784091427630431250239.png

Regulamin sygnatur

Opublikowano

ogółem to jak @OldisPL napisał zabierasz sie od dupy strony, ale też nie musisz trzymać obiektu gracza jeśli chcesz mieć TYLKO wartość typu Player, punkty.

Polecam to przeczytaj najpierw  http://naukajavy.pl/kurs-jezyka-java/111-mapy

no ale jak bardzo chcesz wiedziec jak to zrobić to czytaj to co niżej :)

HashMap<String,Integer> points = new HashMap<>();//czemu String a nie UUID w hashmap? bo tak.

kiedy gracz zrobi coś w evencie i chcesz mu dać pkt to

points.put(e.getPlayer().getUUID().toString(),pointsAmount);// czemu uuid? bo jest unikalne 

teraz

W onEnable(), otwierasz plik/mysql (w pliku możesz to trzymać bo jednak po twoim poziomie sądze że nie zrobisz czegoś dużego wiec w pliku to możesz trzymać, choć jak umiesz mysql to do mysql)

możesz to robić Readerem (http://stackoverflow.com/questions/16027229/reading-from-a-text-file-and-storing-in-a-string) lub YamlConfiguration(choć jak nazwa mówi jest to do configów a nie do zapisu danych)

wrzucasz do pliku coś ala

uuid:punkty

uuid:punkty

a w onDisable() robisz to samo otwierasz plik/mysql i zapisujesz do pliku cała hashamape czyli

for(String key : hashmap.keySet()){

    Integer points  = hashmap.get(key);

//wrzucanie do pliku

}

dodatkowo przy wejściu gracza na serwer w evencie PlayerJoinEvent robisz to samo co w onEnable ale dla jednego gracza

+  robisz taska który np co 10 sekund będzie wrzucał aktualne punkty do gracza, tylko nie rób że np 200 osób na raz ale np po 10-20 osób.

 

 

//pisane na szybko z telefonu więc mogą pojawić się literówki w części z kodem

 

PS. @OldisPL jak tam idzie robienie serwera?

Co ja tutaj robie...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...