Sie sind nicht angemeldet.

  • Anmelden
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Lieber Besucher, herzlich willkommen bei: Nitrado.net Prepaid Gameserver Community-Support - Archiv. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

1

Freitag, 14. November 2014, 15:31

Abgenutzte Werkzeuge verschwinden nicht

Hallo,
ich habe in meinem WaffenPlugin als Magazine Holzwerkzeuge verwendet bei dehnen sich die Durability pro Schuss verringert. Das funktioniert auch alles doch wenn die Durability 0 oder niedriger ist verschwinden die Waffen nicht. Es gibt keinen ErrorCode oder ähnliches und ich finde den Fehler nicht ... Hier ist einmal ein CodeAbschnitt von einer Waffe wenn ihr mehr des Codes benötigt schreibt es einfach :)

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if(e.getItem().getType() != null){
		if(e.getItem().getType() == Material.IRON_INGOT){
		if(schiessenDeagle != null){
			if(!schiessenDeagle.contains(p.getName())){
					if(e.getAction() == Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK){
						if(p.getInventory().contains(Material.WOOD_PICKAXE)){
							ItemStack[] items = p.getInventory().getContents();
							 for (ItemStack item : items) {
							 	if (item != null) {
							 		if(item.getType() == Material.WOOD_PICKAXE){
							 			if(item.getDurability() < 0){
							 				p.getInventory().remove(item);
							 				p.updateInventory();
							 			}else item.setDurability((short) (item.getDurability() + 7.5));
							 			p.updateInventory();
							 		}
							 	}
							 }
							Snowball sb= p.launchProjectile(Snowball.class);
							sb.setMetadata("deagle", new FixedMetadataValue(plugin, true));
							sb.setVelocity(p.getLocation().getDirection().multiply(3.1));
							schiessenDeagle.add(p.getName());
		
							p.playSound(p.getEyeLocation(), Sound.DIG_WOOD, 10F, 10F);
							p.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
								public void run() {
									schiessenDeagle.remove(p.getName());
								}
							}, 1*20);
						}
					}
				}
			}


Vielen Dank.

Stuppsman

User / Kunde

Beiträge: 2 766

Danksagungen: 25

  • Nachricht senden

2

Freitag, 14. November 2014, 15:45

Machs zur Not doch einfach selbst.. bei durability<0 removeItem.. sollte doch funktionieren?
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

3

Freitag, 14. November 2014, 15:58

Ist eigentlich drin. In der mitte ist eine if-Schleife die prüft ob durability < 0 und wenn das der fall ist p.getInventory().remove(item); doch das funktioniert nicht.

BtoBastian

Moderator

  • »BtoBastian« ist männlich

Beiträge: 3 612

Beruf: Softwareentwickler

  • Nachricht senden

4

Freitag, 14. November 2014, 16:29

if-Schleife

Wasn das?
Standard Standart eines Flamingos ist einbeinig.

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

5

Freitag, 14. November 2014, 17:15

@BtoBastian: Damit mein ich etwas das mit "if(...){" anfängt und mit "}" aufhört :)

UnitedSeventeen

User / Kunde

  • »UnitedSeventeen« ist männlich

Beiträge: 641

Wohnort: Localhost

Beruf: Nix

  • Nachricht senden

6

Freitag, 14. November 2014, 17:45

Das nennt man if-Abfrage

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

7

Freitag, 14. November 2014, 19:42

oh okay :) danke

Stuppsman

User / Kunde

Beiträge: 2 766

Danksagungen: 25

  • Nachricht senden

8

Samstag, 15. November 2014, 03:38

Ich versteh nicht, wieso du im else-Fall (absicht, dass die {}-Klammern fehlen? ) 7,5 hinzuaddiert werden.. kann es sein, dass dadurch nie ein Wert unter 0 erreicht wird?
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

9

Samstag, 15. November 2014, 11:42

Ich habe dort 7,5 hinzuaddiert weil so die Durability sinkt (warum auch immer???). Ingame sinkt der Balken und die Durability auch und sie geht auch in den - Bereich aber das Item verschwindet halt nicht wenn es unter null ist oder irre ich mich bei dem addieren?

Anno35

User / Kunde

Beiträge: 1 223

Danksagungen: 3

  • Nachricht senden

10

Samstag, 15. November 2014, 11:53

Probier es mal so:

Java-Quelltext

1
if(item.getDurability() >= item.getType().getMaxDurability()) { /*Dein Code*/ }

Stuppsman

User / Kunde

Beiträge: 2 766

Danksagungen: 25

  • Nachricht senden

11

Samstag, 15. November 2014, 13:58

Lass dir die Durability einfach mal ausgeben.. ich glaub nämlich, die kommt nie bei 0 an, weil du immer 7,5 hinzuaddierst.. dass die Anzeige einen kleiner werdenden Wert anzeigt, halte ich für nen Bug..
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

Anno35

User / Kunde

Beiträge: 1 223

Danksagungen: 3

  • Nachricht senden

12

Samstag, 15. November 2014, 14:14

Das ist schon so richtig.
Die Durability gibt eigentlich nur die SubID von dem abgenutzten Werkzeug zurück.
Wenn man dementsprechend 7 hinzuaddiert dann bekommt das Werkzeug 7 weniger Haltbarkeit.
0 bei der Durability heisst das es nicht abgenutzt ist.

Stuppsman

User / Kunde

Beiträge: 2 766

Danksagungen: 25

  • Nachricht senden

13

Samstag, 15. November 2014, 14:32

Achso, dann versteh ich auch deinen vorherigen Beitrag.. aber dann ist doch klar, wieso die Durability nie unter 0 sinkt?
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

14

Samstag, 15. November 2014, 21:51

Es funktioniert endlich mit der if-Abfrage von Anno35 :) Dank an euch alle doch eine Frage hätte ich noch. Dieser Code zieht natürlich allen Spitzhacken die Durability ab doch geht das auch das immer nur einer Spitzhacke im Inventar die Durability abgezogen wird und sobald diese weg ist die nächste?

Vielen Dank schonmal :)

Anno35

User / Kunde

Beiträge: 1 223

Danksagungen: 3

  • Nachricht senden

15

Samstag, 15. November 2014, 22:04

Du lässt die for-Schleife das komplette Inventar durchlaufen.
Das heisst du musst die Schleife beenden mit break; wenn deine Kriterien zutreffen.
In deinem Fall unter p.updateInventory();

ciaxx

User / Kunde

  • »ciaxx« ist männlich
  • »ciaxx« ist der Autor dieses Themas

Beiträge: 346

Beruf: Schüler

  • Nachricht senden

16

Sonntag, 16. November 2014, 10:55

Ah okay Vielen vielen Dank :)

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net