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

Jak przechowywać statystyki gracza, siła, zręczność w pluginie?


damianq20

Rekomendowane odpowiedzi

Opublikowano

Chciałem zrobić statystyki ale napotkałem mały problem jak je zorganizować aby wszystko było dobrze zrobione :

całość miała by wyglądać tak gracz przykładowo posiadał by takie statystyki jak: obrona , atak , sila , zrecznosc

i statystki może rozwijać sam gracz poprzez rozdawanie punktów statystyk , statystyki mogą być podniesione poprzez przedmioty np zbroja , broń  , mikstura ,

(czyli poza statystykami bazowymi które posiada gracz dodatkowo może dostać bonusy stałe" za przedmioty oraz czasowe)

i tu pojawia się problem jak to zrobić :( jak to wykonać aby wszystko ładnie działało.

 

to co wymyśliłem do tej pory to klasa Atrybuty która przechowywała by pola z tymi statystykami w formie Listy gdzie poszczególne numery indexu odpowiadają odpowiedniej statystyce oraz enum z nazwami i indexami dla uproszczenia (lub zamiast Listy pola i korzystać z Field) (jedyne co mi to dało to prostota dodawania bonusów) ale takie wyjście powoduje inny problem , z każdą zmianą jakiejkolwiek wartości atrybutów trzeba by było przeliczać je wszystkie od nowa

 

 

inny sposób to zrobienie klasy

public class Atrybut<T> {

private ArrayList<T> bonusy; <- i tu ta lista mogła by być zamieniona na jakiś bardziej wykwintny "system" bonusów

private String nazwa;

private T value;

...

}

rozwiązanie niby fajne ale potem zostaje problem jak dodawać bonusy :? i teraz albo poprzez Field , lub tak jak wyżej napisałem nieszczęsna List'a

albo zrobić dla tych czterech przykładowych statystyk gettery do obiektu Atrybut ,problem w tym co jeśli będzie ich z dziesięć   ?

bo aby dodać jeden atrybut np siłę musiał bym dostać obiekt przechowujący informacje o tym atrybucie , (przeszukiwanie listy w poszukiwaniu odpowiedniej nazwy wydaje mi się złym wyjściem) wiec zostaje List+Enum lub Field+Enum lub sam Field<-

 

i cały czas nie wiem jak zrobić czasowe bonusy :? może kolejna ArrayList przechowująca obiekty które z kolei przechowywały by czas oraz wartość atrybutu

 

mam nadzieję że ktoś zrozumie to co napisałem :P

Opublikowano
@

to nad czym sie teraz zastanawiam to :

//mozna by było zrobić podobnie do klasy Atrybut , ale no sam nie wiem czy tak nie będzie lepiej a potem cast ' owac na odpowiedni //typ 
public class AtrybutUnit {
private String cause;
private Number value;
private long time;

public AtrybutUnit(Number value ) {this. vaue = calue;}
public AtrybutUnit(Number value , long time) {...}

//zwraca liczbę ujemna jesli minął czas bonusowych statystyk.
public Number getValue() {
//sprawdza czas i zwraca wartosc
}
}

public class Attrybut<T Number> {

private T field;
private ArrayList<AtrybutUnit> bonus = new AtrybutUnit<>();

// metody do obsługi  (zwracająca listę typu T)
public List<T> getAtrybut(){...}
}

problem z tym polega jedynie na tym że to zwraca listę :/ którą potem muszę zsumować (niby można by było zrobić obiekt ale nie wiem za bardzo jak i nie chcę aż tak zagłębiać się w Class), no niby nic trudnego ale chciałbym to zrobić w obiekcie Atrybut aby podawał już zsumowane atrybuty tzn field base , oraz wszystkie bonusy. jako jeden obiekt

 

//prośił bym o zmianę nazwy tematu na:

Jak przechowywać statystyki gracza , siła , zręczność... Plugin ?

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...