You are not logged in.

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

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

ciaxx

User / Kunde

  • "ciaxx" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

1

Friday, November 14th 2014, 3:31pm

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 source code

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

Posts: 2,766

Thanks: 25

  • Send private message

2

Friday, November 14th 2014, 3:45pm

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" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

3

Friday, November 14th 2014, 3:58pm

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" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

4

Friday, November 14th 2014, 4:29pm

if-Schleife

Wasn das?
Standard Standart eines Flamingos ist einbeinig.

ciaxx

User / Kunde

  • "ciaxx" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

5

Friday, November 14th 2014, 5:15pm

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

UnitedSeventeen

User / Kunde

  • "UnitedSeventeen" is male

Posts: 641

Location: Localhost

Occupation: Nix

  • Send private message

6

Friday, November 14th 2014, 5:45pm

Das nennt man if-Abfrage

ciaxx

User / Kunde

  • "ciaxx" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

7

Friday, November 14th 2014, 7:42pm

oh okay :) danke

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

8

Saturday, November 15th 2014, 3:38am

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" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

9

Saturday, November 15th 2014, 11:42am

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

Posts: 1,223

Thanks: 3

  • Send private message

10

Saturday, November 15th 2014, 11:53am

Probier es mal so:

Java source code

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

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

11

Saturday, November 15th 2014, 1:58pm

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

Posts: 1,223

Thanks: 3

  • Send private message

12

Saturday, November 15th 2014, 2:14pm

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

Posts: 2,766

Thanks: 25

  • Send private message

13

Saturday, November 15th 2014, 2:32pm

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" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

14

Saturday, November 15th 2014, 9:51pm

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

Posts: 1,223

Thanks: 3

  • Send private message

15

Saturday, November 15th 2014, 10:04pm

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" is male
  • "ciaxx" started this thread

Posts: 346

Occupation: Schüler

  • Send private message

16

Sunday, November 16th 2014, 10:55am

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