Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Könnte jemand mal zeigen wie das mit dem AntiKillaura funktioniert ?
 
Könnte jemand mal zeigen wie das mit dem AntiKillaura funktioniert ?
Das wird dir so keiner sagen...
Mach anfangs erst nen Befehl mit dem du die spawnst :)
Du musst dem Spieler packete senden und wenn der Spieler dir entitys also die gesendeten packete schlägt dann erhöht sich der Counter und du bekommst ne Nachricht und so :)

Beides hat nicht geklappt xDD
Hast du das Event überhaupt richtig registriert? :D (Ich kann das ned auswendig also naja...)
 
Zuletzt bearbeitet von einem Moderator:
Code:
PluginManager pm = Bukkit.getPluginManager();
        pm.registerEvents(this, this);

Ist ja in der selben Klasse, da es nur zu Testzwecken dient...
 
Sicher das es klappt? :)
Probier mal ne globale Nachricht auszugeben wenn ein entity Schaden bekommt (BTW bin grad am Handy und müde daher Verlass dich ned auf meine Aussagen :))
 
Könnte jemand mal zeigen wie das mit dem AntiKillaura funktioniert ?
Man braucht dafür ~ 3 Packets.
PacketPlayOutNamedEntitySpawn (Um den Fake-Spieler zu spawnen)
PacketPlayOutEntityDestroy (Um den Fake-Spieler zu entfernen)
PacketPlayInUseEntity (Um alles zu "berechnen")

Arbeite mit Reflection.
Für die 1.8 brauchst du mehrere Packets.
 
  • Like
Reaktionen: 3LaF und HamsterCrack
Sicher das es klappt? :)
Probier mal ne globale Nachricht auszugeben wenn ein entity Schaden bekommt (BTW bin grad am Handy und müde daher Verlass dich ned auf meine Aussagen :))

Also so wird ein Event registriert, ja! Hab mal geschrieben, dass wenn ein Entity so einen void schaden bekommt, eine bukkit broadcast ausgegeben werden soll... Klappt nicht...
 
Probiers mal so das wenn der Spieler nur Schaden bekommt... Vllt liegst an der Abfrage :/
 
Also so wird ein Event registriert, ja! Hab mal geschrieben, dass wenn ein Entity so einen void schaden bekommt, eine bukkit broadcast ausgegeben werden soll... Klappt nicht...
Warum machst du das nicht so?
Code:
    @EventHandler
    public void moving(PlayerMoveEvent event) {
        Player player = event.getPlayer();

        if(player.getLocation().getY() < -20) {
            player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D));
        }
    }
 
Warum machst du das nicht so?
Code:
    @EventHandler
    public void moving(PlayerMoveEvent event) {
        Player player = event.getPlayer();

        if(player.getLocation().getY() < -20) {
            player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D));
        }
    }
Das zieht viel mehr Leistung.... :D
 
  • Like
Reaktionen: 3LaF
Dann probier halt das.. Ich finde das andere schöner. :P
Code:
    @EventHandler
    public void dmg(EntityDamageEvent event) {
        if(event.getEntity() instanceof Player) {
            Player player = (Player) event.getEntity();

            if(event.getCause() == EntityDamageEvent.DamageCause.VOID) {
                player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D));
            }
        }
    }
 
Wie funktioniert die RageMode-Explosion? Ich versuche nunmehr seit 5 Tagen eine Explosion zu erzeugen, die JEDER HumanEntity schaden macht und wenn eine HumanEntity daran stirbt, dass dann der Shooter des Pfeils übergeben wird.

Bukkit.createExplosion() ermöglicht es, eine Explosion zu erstellen, BlockDamage aus zu machen, aber nicht, einen Spieler, bzw. den Shooter zu übergeben. Spieler bekommen Schaden.

PacketPlayOutWorldExplosion macht Geräusche, keinen Player/HumanEntity-Damage und auch keine Partikel (sie sind in den Optionen eingeschaltet)

Explosion funktioniert genauso schlecht. Aktueller Code:
PHP:
    @EventHandler
    public void onHit(ProjectileHitEvent event) {
        if(BilligeRageModeNachmache.getInstance().getGameState() == GameState.INGAME) {
            if(event.getEntity().getType() == EntityType.ARROW) {
                Player p = (Player) event.getEntity().getShooter();
                if(event.getEntity().getShooter().equals(p)) {
                    World w = ((CraftWorld) p.getWorld()).getHandle();
                  
                    Explosion explosion = new Explosion(w, ((CraftPlayer)p).getHandle(), event.getEntity().getLocation().getX(), event.getEntity().getLocation().getY(), event.getEntity().getLocation().getZ(), 10.0F, false, false);
                    explosion.a();
                    explosion.a(true);
                  
                    event.getEntity().remove();
                }
            }
        }
    }

Hoffe, mir kann hier einer helfen.
Evtl. gibt mir @DREAMZii ja auch einen kleinen Tipp, was ich falsch mache, bzw. wie es in RageMode gemacht wird.
Ich erwähne natürlich auch, dass dieses Plugin nicht veröffentlicht wird, also freut euch nicht, wenn ihr gedacht habt, dass ihr den Code bekommt ;)

Mit freundlichen Grüßen,
ilouHD
 
Wie funktioniert die RageMode-Explosion? Ich versuche nunmehr seit 5 Tagen eine Explosion zu erzeugen, die JEDER HumanEntity schaden macht und wenn eine HumanEntity daran stirbt, dass dann der Shooter des Pfeils übergeben wird.

Bukkit.createExplosion() ermöglicht es, eine Explosion zu erstellen, BlockDamage aus zu machen, aber nicht, einen Spieler, bzw. den Shooter zu übergeben. Spieler bekommen Schaden.

PacketPlayOutWorldExplosion macht Geräusche, keinen Player/HumanEntity-Damage und auch keine Partikel (sie sind in den Optionen eingeschaltet)

Explosion funktioniert genauso schlecht. Aktueller Code:
PHP:
    @EventHandler
    public void onHit(ProjectileHitEvent event) {
        if(BilligeRageModeNachmache.getInstance().getGameState() == GameState.INGAME) {
            if(event.getEntity().getType() == EntityType.ARROW) {
                Player p = (Player) event.getEntity().getShooter();
                if(event.getEntity().getShooter().equals(p)) {
                    World w = ((CraftWorld) p.getWorld()).getHandle();
                
                    Explosion explosion = new Explosion(w, ((CraftPlayer)p).getHandle(), event.getEntity().getLocation().getX(), event.getEntity().getLocation().getY(), event.getEntity().getLocation().getZ(), 10.0F, false, false);
                    explosion.a();
                    explosion.a(true);
                
                    event.getEntity().remove();
                }
            }
        }
    }

Hoffe, mir kann hier einer helfen.
Evtl. gibt mir @DREAMZii ja auch einen kleinen Tipp, was ich falsch mache, bzw. wie es in RageMode gemacht wird.
Ich erwähne natürlich auch, dass dieses Plugin nicht veröffentlicht wird, also freut euch nicht, wenn ihr gedacht habt, dass ihr den Code bekommt ;)

Mit freundlichen Grüßen,
ilouHD
Du willst also, wenn der Shooter einen killt, dass er den Pfeil übergibt, den Kill bekommt + eine Explosion verursacht?

Ja gut... Bevor ich den Fehler gefunden habe müssen manche wieder zur Schule... Mein Gehirn ist gleich fertig für den Tag :D... Bitte sags einfach xD
Code:
        public void OnEnable(){
                System.out.println("By 3LaF -- on --");
             
                PluginManager pm = Bukkit.getPluginManager();
                pm.registerEvents(this, this);
     
     
     
     
        }
Wo ist wohl der Fehler?
 
  • Like
Reaktionen: 3LaF
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop