Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 08:05

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement
Bitcoin Dice Game


Minecraft 1.8.9 Java Plugin/Attack Damage senken

Discussion on Minecraft 1.8.9 Java Plugin/Attack Damage senken within the Java forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2013
Posts: 105
Received Thanks: 1
Minecraft 1.8.9 Java Plugin/Attack Damage senken

Hey alle zusammen, ich arbeite momentan wie ihr villt schon von meinem davoriegen Beiträgen merkt wieder mit java plugins an etwas und komme auch gut zurecht, bis auf an einer stelle und mir erschließt einfach nicht wie ich es umsetzen kann um an meinem ziel ran zu kommen, hab schon echt viel versucht und da ich nur scheitere habe ich gehofft das ihr mir villt dabei helfen könntet.

Worum es geht;
Ich möchte gerne den Standard Attackdamge von einem Holtzschwert von +4 auf +1 senken weiß leider jedoch nicht wie das geht.
arbeiten tue ich das alles in dem PlayerItemDamgeEvent (ich weiß das ergibt keinen sinn für außenstehende aber es ist wichtig das es dort passiert)
Ich hab bereits so programmiert das die Durability von einem bestimmten holtzschwert was einen bestimmten namen hat kein schaden mehr erleidet und auf eine bestimmte durability wert stehen bleibt.
nun will ich aber auch das es den attack damage von +4 nur noch auf +1 beträgt, wie kann ich das umsetzen?
event.setDamage((int)1);
funktioniert da leider nicht, ich gehe davon aus das er das item pfard braucht sprich
event.getItem() (Hier code für dmg)
oder so ähnlich :?

MFG
ProDielerNR(1)

hab es nochmal mit einem int und einem Amount probiert hat aber leider auch nicht funktioniert.

Code:
int dmg = 1;
        	  event.getItem().setAmount(dmg);
            event.setDamage(event.getItem().getAmount())



ProDielerNR(1) is offline  
Old 06/30/2020, 17:31   #2
Moderator

 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,515
Received Thanks: 1,416
Für den Schaden am Spieler/Gegner bist du im falschen Event, da veränderst du nur wie viel Schaden das Item nehmen soll.

Für das was du vor hast, musst du das EntityDamageByEntityEvent verwenden. Da kannst du dir dann ansehen welches Item der "Damager" in der Hand hat und wenn es ein Holzschwert ist den Schaden ändern.


ComputerBaer is offline  
Old 06/30/2020, 20:08   #3
 
elite*gold: 0
Join Date: Jan 2013
Posts: 105
Received Thanks: 1
das ist ja mal umstendlich :?
nagut ich werde es mal versuchen

in der event methode habe ich leider probleme mit dem code
Code:
 [MENTION=555807]event[/MENTION]Handler
	public void Schwerterdmg (EntityDamageByEntityEvent event) {
		if (event.getItem().getType() != Material.WOOD_SWORD) {

			   return;
			    }
	        if(event.getPlayer() instanceof Entity) {
			

	          if(event.getItem().hasItemMeta()){
	        	   if(event.getItem().getItemMeta().hasDisplayName()){
	          if(event.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("Schwert1")){
	        	  
	          }
	        	   }
	          }
	        }
	}
wie muss ich das den dann umschreiben?
ProDielerNR(1) is offline  
Old 06/30/2020, 20:23   #4
Moderator

 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,515
Received Thanks: 1,416
Das ist jetzt hier geschrieben, könnten also noch kleine Fehler drin sein
Code:
    public void Schwerterdmg (EntityDamageByEntityEvent event) {
        if(!(event.getDamager​() instanceof Player)) {
            return;
        }

        Player player = (Player) event.getDamager​();
        ItemStack item = player.getItemInHand​();

        if (item == null || item.getType() != Material.WOOD_SWORD || !item.hasItemMeta()) {
            return;
        }

        ItemMeta meta = item.getItemMeta();
        if (!meta.hasDisplayName()) {
            return;
        }

        if (meta.getDisplayName().equalsIgnoreCase("Schwert1")) {
            event.setDamage(1);
        }
    }
Quote:
Originally Posted by ProDielerNR(1) View Post
das ist ja mal umstendlich :?
Mit umständlich hat das nicht viel zu tun, sondern mit gutem API Design. Die Haltbarkeit eines Items (PlayerItemDamgeEvent) geht ja nicht nur kaputt wenn damit ein anderes Entity geschlagen wird (EntityDamageByEntityEvent). Die Haltbarkeit von Werkzeugen reduziert sich beim Abbau von Blöcken, dabei kommt kein Entity zu schaden. Wenn du hingegen ein Entity mit der Handy schlägst oder mit einem Pfeil triffst, nimmt kein Item dabei Schaden. Du kannst also nicht automatisch sagen "wenn ein Item beschädigt wird, dann bekommt auch ein Entity Schaden".


ComputerBaer is offline  
Old 06/30/2020, 22:19   #5
 
elite*gold: 0
Join Date: Jan 2013
Posts: 105
Received Thanks: 1
Code:
    [MENTION=555807]event[/MENTION]Handler
    public void Schwerterdmg ( EntityDamageByEntityEvent event) {
		Player p = ((OfflinePlayer) event).getPlayer();
		  p.sendMessage("1");
        if(!(event.getDamager() instanceof Player)) {
        	  p.sendMessage("2");
            return;
        }
        p.sendMessage("3");
      
        Player player = (Player) event.getDamager();
      ItemStack item = player.getItemInHand();

        if (item == null || item.getType() != Material.WOOD_SWORD || !item.hasItemMeta()) {
        	  p.sendMessage("4");
            return;
        }
        p.sendMessage("5");
        ItemMeta meta = item.getItemMeta();
        if (!meta.hasDisplayName()) {
        	  p.sendMessage("6");
            return;
        }
        p.sendMessage("7");
        if (meta.getDisplayName().equalsIgnoreCase("Schwert1")) {
        	  p.sendMessage("8");
            event.setDamage(1);
        }
    }
wie du schon sagtest musste ich den code ausbessern jedoch funktioniert der leider dennoch nicht.

Edit: das event an sich reagiert überhaupt nicht darauf wen man ein entity schlägt

Code:
      [MENTION=555807]event[/MENTION]Handler
    public void Schwerterdmg (final EntityDamageByEntityEvent event) {
        Player player = (Player) event.getDamager();
      ItemStack item = player.getItemInHand();
      ItemMeta meta = item.getItemMeta();
      player.sendMessage("1");
        if (item == null || item.getType() != Material.WOOD_SWORD || !item.hasItemMeta()) {
        	player.sendMessage("2");
            return;
        }       
        if(!(event.getDamager() instanceof Player)) {
        	player.sendMessage("3");
            return;
        }
        if (!meta.hasDisplayName()) {
        	player.sendMessage("4");
            return;
        }
        if (meta.getDisplayName().equalsIgnoreCase("Bō")) {
        	player.sendMessage("5");
        	  ((EntityDamageEvent) player).setDamage((short)1.0);
        }
    }
Mir ist gestern ein paar fehler unterlaufen nun habe ich diese ausgebessert das event wird nun erkannt auch das item mit seinem namen nur der Damage wird leider dennoch nicht gesengt :?

Ah okay ich hab was raus gefunden der dmg wird tartsächlich geändert aber es wird nicht im item feld "attack Damage" anzeige die auf +4 steht, sie wurde aber dennoch geändert.
wen man so sagen will ist es nun ein Anzeige fehler

Closed Quest
ProDielerNR(1) is offline  
Old Yesterday, 15:05   #6
Johann „Hans“ Hölzel †



 
elite*gold: 16
Join Date: Apr 2012
Posts: 5,167
Received Thanks: 606
#closed


Legendary is offline  
Closed Thread



« Java Fragen Klassen und objekte | - »

Similar Threads Similar Threads
[Confirmed]Hint Attack Speed and Attack Damage!
05/10/2015 - RF Online - 143 Replies
Sorry Post DEleted! just pm me nalang or add me sa YM [email protected] for those who wanted to ask question about it!:mofo::mofo::mofo::bandit::bandit::o:cool: Cargo: to those newbie & noob who doesn't know how to use CE... just ask me on YM ill send you the video myself on how to lower PT and Level of your armor and weapon and how to hot swap to start for you to lear how to browse and search and how to use CE! ok??!!!! heheheh!!!! To those who Play RFph: i play in CALIX...
[Selling] FFA Plugin/Support Plugin/Musik Plugin/Umfrage Plugin
12/09/2014 - Minecraft Trading - 3 Replies
Hey, ich biete euch hier einige Bukkit Plugins an :) Weitere folgen ^^ FFA-Plugin Was wird benötigt? Server + BungeeCord Netzwerk (Plugin ist auf BungeeCord ausgelegt.)
Damage Damage Damage
02/28/2012 - Mabinogi Hacks, Bots, Cheats & Exploits - 3 Replies
Because of poor English grammar may be a bit strange May I ask what damage accumulated or MOD



All times are GMT +2. The time now is 08:05.


Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

BTC: 33E6kMtxYa7dApCFzrS3Jb7U3NrVvo8nsK
ETH: 0xc6ec801B7563A4376751F33b0573308aDa611E05

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2020 elitepvpers All Rights Reserved.