• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Skywars Chest-Generator Übertreibt beim abbauen der Truhe

EGPVP

Minecrafter
Registriert
28 Juni 2017
Beiträge
7
Alter
25
Diamanten
0

Abrogatum

Minecrafter
Registriert
11 Februar 2017
Beiträge
4
Diamanten
0
"Wenn man die Truhen abbaut"...

Überprüfe in deinem BlockBreakEvent, ob der abgebaute Block eine Kiste ist...
e.getBlock().getType() == Material.CHEST
Wenn true, dann cancle das Event und setze den Block manuell auf Material.AIR...
e.getBlock().setType(Material.AIR);
Im Prinzip wandelst du alle Truhen in Luftblöcke um.
Und nächstes mal bitte keine 5 Hastebin Links. Ausschnitte des relevanten Codeabschnittes reicht. Sowas schreckt ab.
 
F

Figz

Guest
Ist das mittlerweile Standard, dass man für alles 2 Threads eröffnet??
https://minecraft-server.eu/forum/threads/skywars-chest-generator-fail.43602/

Wenn es der Loot der Chest gedroppt werden soll, warum mischt du dich dann mit Event ein?
Sobald die Chest abgebaut wird, droppen doch sowieso alle Sachen die dort drin sind.

Code:
public void oninteract(PlayerInteractEvent e){
if(e.getAction() == Action.RIGHT_CLICK_BLOCK){
if(MiniGame.main.state == Gamestate.INGAME){
if(e.getClickedBlock().getType() == Material.CHEST){
if(!MiniGame.main.getChesthandler().fakeChests.contains(e.getClickedBlock().getLocation())){

Chest chest = (Chest) e.getClickedBlock().getState();
chest.getBlockInventory().setContents(MiniGame.main.getChesthandler().getchest(e.getClickedBlock().getLocation()).getInv().getContents());
e.getPlayer().openInventory(chest.getInventory());

MiniGame.main.getChesthandler().fakeChests.add(e.getClickedBlock().getLocation());

e.setCancelled(true);
}
}
}
}
}

Du holst dir jedes mal, wenn eine Spieler eine Chest öffnet das Inventar der Chest und setzt dann einen anderen Inhalt. Warum nicht einfach direkt ein neues Inventar erstellen und dem Spieler anzeigen? Zudem, jedes mal, wenn ein Spieler die Chest öffnet wird er die gleichen Items angezeigt bekommen, egal ob jemand schon vorher welche rausgenommen hat.

Also du solltest mal deine gesamte Logik überdenken, denn ich glaube das was du dort geschrieben hast, wird nicht das tun, was du erwartest.
 
Zuletzt bearbeitet von einem Moderator:

EGPVP

Minecrafter
Registriert
28 Juni 2017
Beiträge
7
Alter
25
Diamanten
0
Ist das mittlerweile Standard, dass man für alles 2 Threads eröffnet??
https://minecraft-server.eu/forum/threads/skywars-chest-generator-fail.43602/

Wenn es der Loot der Chest gedroppt werden soll, warum mischt du dich dann mit Event ein?
Sobald die Chest abgebaut wird, droppen doch sowieso alle Sachen die dort drin sind.

Code:
public void oninteract(PlayerInteractEvent e){
if(e.getAction() == Action.RIGHT_CLICK_BLOCK){
if(MiniGame.main.state == Gamestate.INGAME){
if(e.getClickedBlock().getType() == Material.CHEST){
if(!MiniGame.main.getChesthandler().fakeChests.contains(e.getClickedBlock().getLocation())){

Chest chest = (Chest) e.getClickedBlock().getState();
chest.getBlockInventory().setContents(MiniGame.main.getChesthandler().getchest(e.getClickedBlock().getLocation()).getInv().getContents());
e.getPlayer().openInventory(chest.getInventory());

MiniGame.main.getChesthandler().fakeChests.add(e.getClickedBlock().getLocation());

e.setCancelled(true);
}
}
}
}
}

Du holst dir jedes mal, wenn eine Spieler eine Chest öffnet das Inventar der Chest und setzt dann einen anderen Inhalt. Warum nicht einfach direkt ein neues Inventar erstellen und dem Spieler anzeigen? Zudem, jedes mal, wenn ein Spieler die Chest öffnet wird er die gleichen Items angezeigt bekommen, egal ob jemand schon vorher welche rausgenommen hat.

Also du solltest mal deine gesamte Logik überdenken, denn ich glaube das was du dort geschrieben hast, wird nicht das tun, was du erwartest.

1. Das ist in ner Anderen AKtegorie in Der Hoffnung das Jemand vllt Da Hilft.
2. Das Ist so: Man Öffnet das Inv, und bekommt Aus Einer Liste Mit Vershciedenen Items So ca. 100Stück 5-15 ITems In Zahlen bis 64 Stück Drin An Verschiedenen Slots. Dazu wird aber ein Extra Inv Geöffnet. Man soll Jetzt aber Wenn man Die Truhe abbaut ohne vorher geöffnet zu haben (Sonst bekommt man den loot der da vorher drin generiert Worden ist.) Genau so Loot Bekommen, was aber nicht ist, weil dann immer Die GANZEN 100 ITems In so 1-2 Facher Ausführung Droppen. Wie Fixxt man das?!?!?!?.
3. Nein Nur wenn die chest geöffnet worden ist bekommt man die angezeigt sonst random items
4. Das ist aus nem Video Weil ICH damit nichts Verstehe Also Von Dem Loot Generator Nichts Verstehe.


Ehm also um welche Minecraft version gehts denn überhaupt?
Inzwischen sind solche Generatoren eigentlich sowas von unnötig: https://minecraft.gamepedia.com/Loot_table
(Außer du willst pay to win betreiben was von der EULA her verboten ist)
1. Version 1.8.3
2. Wie?
3. Was für Pay To Win? Wo Bitteschön? Laut Eula ist der Server 100% Akzeptabel.
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
1. Version 1.8.3
2. Wie?
3. Was für Pay To Win? Wo Bitteschön? Laut Eula ist der Server 100% Akzeptabel.

Ok, damit haben sich loot tables für dich geklärt. Damit kannst du einer Kiste eine Liste an items zuweisen und mit welcher Warhscheinlichkeit diese auftreten können.
(Zu 3. damit kann man halt nicht rang abhängig den loot verteilen ;))
 

EGPVP

Minecrafter
Registriert
28 Juni 2017
Beiträge
7
Alter
25
Diamanten
0
Ok, damit haben sich loot tables für dich geklärt. Damit kannst du einer Kiste eine Liste an items zuweisen und mit welcher Warhscheinlichkeit diese auftreten können.
(Zu 3. damit kann man halt nicht rang abhängig den loot verteilen ;))
Ja Aber Wie Mache ich das? Ich habe da 0% ahnung von.
Oder was mir grade einfällt:
Wenn man die truhen öffnet wird der loot darein getan. wenn man schließt bliebt genau der loot auch da drin egal beim abbauen oder neuöffnen. Also mache ich Einfach ein Ein Inventar Open, CLose es direkt und dann droppen das. Also beim abbauen??
 
Oben