[Bukkit] Mit Stick schießen?

03/28/2014 21:14 .cryptex#1
Hey Community,

Ich hab mal auf mehreren Servern gesehen, das man mit einem
Stick schnebälle schießen konnte und auch Leuten damit eine
bestimmte damage anzahl geben, jetzt ist meine frage wie
mache ich sowas? Was brauch ich dazu, hat vielleicht jmd eine Vorlage?

mfg Scarpex
03/28/2014 21:52 ComputerBaer#2
Dazu brauchst du ein Plugin, aber ich nehme mal an du willst wissen wie das Plugin arbeitet?

Du reagierst auf des gewünschte Event (z.B. Interact), prüfst ob der Spieler einen Stick in der Hand hält und erzeugst dann einen Schneeball, der in die gewünschte Richtung fliegt. (Das ist allerdings etwas komplizierter)
Den Schneeball hast du irgendwie markiert (es gibt mehrere Wege, die Suche überlasse ich dir). Wenn dann ein Spieler von einem Schneeball getroffen wird (Damage Event), dann siehst du dir den Schneeball an ob er von dir kommt, wenn das der Fall ist legst du den Schaden des Events neu fest.

So ungefähr müsste das aussehen, die restliche Arbeit solltest du (fast) komplett alleine machen, vorallem wenn du noch etwas dabei lernen willst.
03/28/2014 21:57 .cryptex#3
PHP Code:
public void onPlayerInteract(PlayerInteractEvent evt) {
        
Player player evt.getPlayer();
        
Action action evt.getAction();
        
ItemStack held player.getItemInHand();
        
int dur held.getDurability();
          if (
held.getType() == Material.STICK) {
            if (
action == Action.RIGHT_CLICK_AIR) {
              
player.launchProjectile(Snowball.class);
              
held.setDurability((short)(dur 1));
            } else if (
action == Action.RIGHT_CLICK_BLOCK) {
              
player.launchProjectile(Snowball.class);
              
held.setDurability((short)(dur 1));
            } 
Habe es hinbekommen :). Aber ein problem gibts noch ^^. Es fehlt die Munition, irgendwie muss ich das noch hinbekommen.
03/28/2014 22:16 SBotDE#4
Mach die Muniton mit einem ItemStack und danach beim schießen prüfst du erst ob der Spieler diesen ItemStack im Inventar hat und ob die Amout davon 1 oder darüber ist dann beim schießen ziehst du immer eins ab ganz einfach ;) Wenn du bissen Source zum Arbeiten willst schreib mir eine PN :))