Skocz do zawartości
  • 0

"Zmienne" w pluginie


KrejzolekPRO

Pytanie

Witam, od niedawna uczę się pisać pluginy do Minecrafta. Na razie szło fajnie, szybko się uczyłem. Wczoraj postanowiłem stworzyć swój plugin na ranking. Ale pojawił się problem, chciałem przy każdym zabójstwie gracza dodać do jego zmiennej 1, ale nie potrafię stworzyć takiej zmiennej. Nie umiem. Ogólnie chodzi o to, aby ktoś mi wytłumaczył jak tworzyć "zmienne graczowe". Na innym forum, pan Olids pokazał mi sposób z HashMap, ale nie pokazał mi, jak, np. dodać coś do tej zmiennej, odjąć etc.

Kod wyglądał tak:

[importy i reszta]

public class Ranks extends JavaPlugin implements Listener {
	
	HashMap<UUID , Integer> ranking = new HashMap<>();
	public void onDeath(PlayerDeathEvent e){
		Player a = e.getEntity().getKiller();
		Player v = e.getEntity();
		if(ranking.get(a.getUniqueId()) == null){
			//teraz moje próby:
			//ranking.get(a.getUniqueId()).add...
			//ranking.get(a.getUniqueId()).set...itd
		}
	}
}

 

Odnośnik do komentarza
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, Libter napisał:

W onDeath:


		Player v = e.getEntity();
		Player a = v.getKiller();
		UUID uuid = a.getUniqueId();
		if (!ranking.contains(uuid)) {
			ranking.put(uuid, 0);
		}
		ranking.put(uuid, ranking.get(uuid) + 1);

 

Okej, zrozumiałem już co nieco. teraz tak. Mam kod:

public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
		if(cmd.getName().equalsIgnoreCase("ranking")){
			UUID uuid = ((Player) s).getUniqueId();
			if(args.length == 0){
				if(!ranking.containsKey(uuid)){
					ranking.put(uuid, 500);
				}
				else{
					s.sendMessage("§7Twoj ranking: §6" + ranking.get(uuid) + "");
				}
			}
			else if(args[0] == "dodaj"){
				ranking.put(uuid, ranking.get(uuid) + 25);
			}
		}
		return true;
	}

Trochę, źle zrozumiałeś. Chodziło o dodanie do całej "zmiennej" 25, a nie do wiadomości.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Ixidi napisał:

Czyli o co Ci chodzi? :x

Chodzi o to, że chcę stworzyć zmienna, która będzie przechowywać statystyki gracza.

W skrypcie by to było tak:

on death:

    add 1 to {zabojstwa::%attacker%}

    add 1 to {smierci::%victim%}

    add 25 to {ranking::%attacker%}

Edytowane przez KrejzolekPRO
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Zacznijmy od tego, że musisz wybrać rodzaj zapisu. Możesz do pliku, bazy danych SQL, czy nawet do MongoDB. Serio, możliwości masz bez liku. Ja osobiście, na start, poleciłbym Tobie zrobienie coś na bazie zapisu do plików. Jako iż nie jestem teraz przy komputerze, to podeśle Tobie gotowy source-code z pluginu na gildie autorstwa Kamilkime. Nie jest on najlepszy i ma masę błędów, jednak on pomoże Tobie idealnie zrozumieć, jak zrobić taką prymitywną formę zapisu. Link do niego masz tutaj: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Zacznij od przeglądania Main.java, i śledz to, co kod robi. Jak wrócę do domu, to napiszę Tobie przykładowy plugin na ranking, z omówieniem wszystkich elementów i napiszę post w tym temacie.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Wizzard napisał:

Zacznijmy od tego, że musisz wybrać rodzaj zapisu. Możesz do pliku, bazy danych SQL, czy nawet do MongoDB. Serio, możliwości masz bez liku. Ja osobiście, na start, poleciłbym Tobie zrobienie coś na bazie zapisu do plików. Jako iż nie jestem teraz przy komputerze, to podeśle Tobie gotowy source-code z pluginu na gildie autorstwa Kamilkime. Nie jest on najlepszy i ma masę błędów, jednak on pomoże Tobie idealnie zrozumieć, jak zrobić taką prymitywną formę zapisu. Link do niego masz tutaj: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Zacznij od przeglądania Main.java, i śledz to, co kod robi. Jak wrócę do domu, to napiszę Tobie przykładowy plugin na ranking, z omówieniem wszystkich elementów i napiszę post w tym temacie.

Dzięki bardzo. Czekam.

Odnośnik do komentarza
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ę...