1. 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!

PlugIn Waffen mit Enchantments verwenden, aber wie?!

Dieses Thema im Forum "Programmierung" wurde erstellt von Freebuilding, 14. Oktober 2013.


  1. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Guten Tag, wie verwende ich Waffen mit Enchantments?
    Bei meinem folgendem Code funktioniert es nur bei der ersten Enchanteten Waffe, aber danach erhalte ich nicht die nächste o_O

    Code (Text):
    1.   ItemStack w5 = new ItemStack(Material.WOOD_AXE);
    2.     w5.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 1);
    3.     w5.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    4.     if (e.getEntity().getKiller().getInventory().contains(w5)) {
    5.       e.getEntity().getKiller().getInventory().clear();
    6.       e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    7.     }
    8.  
    9.     ItemStack w4 = new ItemStack(Material.DIAMOND_SWORD);
    10.     w4.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    11.     if (e.getEntity().getKiller().getInventory().contains(w4)) {
    12.       e.getEntity().getKiller().getInventory().clear();
    13.       e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    14.       e.getEntity().getKiller().setHealth(20.0D);
    15.       e.getEntity().getKiller().sendMessage("§3[GunGame] §6Du hast Stufe §9I §6erreicht !");
    16.       e.getEntity().getKiller().sendMessage("§3[GunGame] §9Du wurdest deswegen §2geheilt §9!");
    17.       e.getEntity().getKiller().getInventory().addItem(new ItemStack(w5));
    18.       }
    Ich würde mich sehr über Antworten freuen!

    LG freebuilding
     
  2. Werbung
    Online

    Werbung

  3. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    Hey,

    Du solltes in der ersten If-Schleife dem Spieler die Waffe hinzufügen so wie du es auch in der zweiten If-Schleife machst.
    Code (Text):
    1. if (e.getEntity().getKiller().getInventory().contains(w5)) {
    2.       e.getEntity().getKiller().getInventory().clear();
    3.       e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    4.       e.getEntity().getKiller().getInventory().addItem(XY);
    5.  
    6.     }
     
    Zuletzt bearbeitet: 15. Oktober 2013
  4. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Okay

    Okay, mal testen ;)
     
  5. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    Okay, dann mach des mal.
     
  6. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Geht nicht? :eek:

    Geht nicht :(
    Mein jetztiger Code:
    Code (Text):
    1.  
    2. ItemStack o3 = new ItemStack(Material.WOOD_SWORD);
    3.     o3.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    4.     ItemStack o = new ItemStack(Material.STONE_AXE);
    5.     o.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    6.     if(e.getEntity().getKiller().getInventory().contains(o)) {
    7.         e.getEntity().getKiller().getInventory().clear();
    8.         e.getEntity().getKiller().setHealth((double)(20));
    9.         e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    10.         e.getEntity().getKiller().getInventory().addItem(o3);
    11.   }
    12.     if(e.getEntity().getKiller().getInventory().contains(Material.DIAMOND_SWORD)) {
    13.         e.getEntity().getKiller().getInventory().clear();
    14.         e.getEntity().getKiller().setHealth((double)(20));
    15.         e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    16.         e.getEntity().getKiller().getInventory().addItem(o);
    17.   }
    18.  
    #EDIT: Ich erhalte immer eine Steinaxt mit Schärfe 1 obwohl ich ja am Ende anstatt dieser ein Holzschwert mit Schärfe 1 bekommen sollte. Woran liegt das?
     
    Zuletzt bearbeitet: 15. Oktober 2013
  7. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    mhmmm.
    Also du willst doch machen das wenn der Spieler eine bestimmte Waffe im Inventar hat das er dann die 2. Waffe bekommt oder ?
     
  8. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Richtig

    Genau, die Waffe die er bereits hat (o) soll entfernt werden und dann soll er (o3) bekommen.
     
  9. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    Code (Text):
    1.             //Das eine Item
    2.             ItemStack Item1 = new ItemStack(Material.STONE_SWORD);
    3.             Item1.getItemMeta().setDisplayName("Item1");
    4.            
    5.             //Das andere Item
    6.             ItemStack Item2 = new ItemStack(Material.STONE_SWORD);
    7.             Item2.getItemMeta().setDisplayName("Item2");
    8.            
    9.             if(p.getInventory().contains(Item1)) {
    10.                 //Im Inventar des Spielers befindet sich das "Item1"
    11.                 p.getInventory().clear();//Inventar löschen
    12.                 p.getInventory().addItem(Item2);//Item2 hinzufügen
    13.             }
    14.             else if(p.getInventory().contains(Item2)) {
    15.                 //Im Inventar des Spielers befindet sich das "Item2"
    16.                 p.getInventory().clear();//Inventar löschen
    17.                 p.getInventory().addItem(Item1);//Item1 hinzufügen
    18.             }
    Also wenn du dies so machst sollte das Item des Spieler immer hin und her wechseln.
     
  10. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Hä?

    Also, es geht aber es ist irgendwie so, dass Enchantete Items nicht entfernt werden hab ich das Gefühl, kann das sein?
    Mein jetziger Code:
    Code (Text):
    1.     //Item o
    2.     ItemStack o = new ItemStack(Material.STONE_AXE);
    3.     o.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    4.     o.getItemMeta().setDisplayName("o");
    5.     //Item o2
    6.     ItemStack o2 = new ItemStack(Material.WOOD_SWORD);
    7.     o2.addEnchantment(Enchantment.DAMAGE_ALL, 1);
    8.     o2.getItemMeta().setDisplayName("o2");
    9.     if(e.getEntity().getKiller().getInventory().contains(Material.GOLD_AXE)) {
    10.         e.getEntity().getKiller().getInventory().clear();
    11.         e.getEntity().getKiller().setHealth((double)(20));
    12.         e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    13.         e.getEntity().getKiller().getInventory().addItem(new ItemStack(Material.WOOD_SWORD));
    14.     }
    15.     else if(e.getEntity().getKiller().getInventory().contains(Material.WOOD_SWORD)) {
    16.         e.getEntity().getKiller().getInventory().clear();
    17.         e.getEntity().getKiller().setHealth((double)(20));
    18.         e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    19.         e.getEntity().getKiller().getInventory().addItem(new ItemStack(Material.STONE_SWORD));
    20.   }
    21.    
    22.     else if(e.getEntity().getKiller().getInventory().contains(Material.STONE_SWORD)) {
    23.         e.getEntity().getKiller().getInventory().clear();
    24.         e.getEntity().getKiller().setHealth((double)(20));
    25.         e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    26.         e.getEntity().getKiller().getInventory().addItem(new ItemStack(Material.IRON_SWORD));
    27.   }
    28.     else if(e.getEntity().getKiller().getInventory().contains(Material.IRON_SWORD)) {
    29.             e.getEntity().getKiller().getInventory().clear();
    30.             e.getEntity().getKiller().setHealth((double)(20));
    31.             e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    32.             e.getEntity().getKiller().getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
    33.     }
    34.     else if(e.getEntity().getKiller().getInventory().contains(Material.DIAMOND_SWORD)) {
    35.             e.getEntity().getKiller().getInventory().clear();
    36.             e.getEntity().getKiller().setHealth((double)(20));
    37.             e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    38.             e.getEntity().getKiller().getInventory().addItem(o);
    39.     }
    40.     else if(e.getEntity().getKiller().getInventory().contains(o)) {
    41.     e.getEntity().getKiller().getInventory().clear();
    42.     e.getEntity().getKiller().setHealth((double)(20));
    43.     e.getEntity().getKiller().playSound(e.getEntity().getKiller().getLocation(), Sound.LEVEL_UP, 1.0F, 1.0F);
    44.     e.getEntity().getKiller().getInventory().addItem(o2);
    45.         }
    46.      }  
    47.   }
    Edit: Ich bekomme als letztes die verzauberte Steinaxt obwohl ich das verzauberte Steinschwert bekommen sollte.
     
  11. Herodennis
    Offline

    Herodennis

    Registriert seit:
    9. Dezember 2011
    Beiträge:
    31
    Bei deinem Code steht auch Stone_axe das muss natürlich zum sword
     
  12. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Unnötig

    Ich habe doch alles so definiert wie ich es wollte da brauchst du nicht irgendetwas zu erfinden o_O
     
  13. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    Also wenn du
    Code (Text):
    1. p.getInventory().clear();
    machst sollte ja das genze Inventar gelöscht werden. Du könntest aber zur Sicherheit das Inventar auch noch updaten.
    Code (Text):
    1. p.getInventory().update();
    Oder du löschst nicht das ganze Inventar sondern entfernst einfach nur das gewünschte Item.
     
  14. Freebuilding
    Offline

    Freebuilding

    Registriert seit:
    2. Oktober 2012
    Beiträge:
    44
    Okay

    Ich habs jetzt anders hinbekommen. Das war schon richtig, wie ich es gemacht habe.
    Deine if und else if Hilfe war echt hilfreich! :)
    LG riderstorm
     
  15. Benutzer
    Offline

    Benutzer

    Registriert seit:
    1. November 2012
    Beiträge:
    56
    Okay dann ist ja gut :D
     
    • Gefällt mir Gefällt mir x 1