Instant Death/Kills zählen trotzt runtergeschlagen.

Dieses Thema im Forum "Programmierung" wurde erstellt von 777dodi, 10. November 2016.

  1. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Hi!
    Ich habe zwei Probleme:
    1 Thema: Instant Death.
    2. Aus der Welt fallen, jedoch den Kill bekommen.

    1.
    Ich suche nach einem Plugin oder einem Command, das/der den Spieler sofort, ab einer bestimmten Höhe, killt, da man sich auf der Map in das ,,nichts,, schubsen muss, und es nervt, andauernd darauf zu warten, das man stirbt.

    2.
    Ich suche ein einem Plugin oder einem Comand, das obwahl man den Spieler runterschlägt, und eigenntlich er aus der Welt fällt, und nicht von dem Spieler gekillt wird, dafür sorgt, das der Spieler, und nicht das ,,nichts,, ihn tötet, damit in den Stats, ein Kill angezeigt wird.

    Falls sich damit jemand auskennt, kann er mir gerne helfen. Bei genaueren Fragen, einfach melden.
    Mfg, 777dodi.
     
    #1
  2. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Klar, wenn er noch die Version benutzt:
    1.7.2-R0.2
     
    #2
  3. KeVoZ_
    Offline

    KeVoZ_

    Registriert seit:
    9. Mai 2015
    Beiträge:
    62
    Minecraft:
    Curverneur
    Das ist egal. Seit dieser Version hat sich doch nichts an der Welt verändert. Das void ist immer noch seit Anfang an unverändert.
     
    #3
  4. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Okay das stimmt.
     
    #4
  5. KeVoZ_
    Offline

    KeVoZ_

    Registriert seit:
    9. Mai 2015
    Beiträge:
    62
    Minecraft:
    Curverneur
    Sag ich doch ;)
    Es gibt so viele Plugins, die für die Grundlagen funktionieren, und somit nicht weiterentwickelt wurden.
     
    #5
  6. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Ja das ist bei vielen Plugins, solange sie nicht mit Pakets oder NMS arbeiten der Fall.
     
    #6
  7. KeVoZ_
    Offline

    KeVoZ_

    Registriert seit:
    9. Mai 2015
    Beiträge:
    62
    Minecraft:
    Curverneur
    :3Jap
     
    #7
  8. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Vielen Dank :) Werde es gleich mal testen. Hast mir sehr weiter geholfen, Danke :)
     
    #8
  9. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Das Plugin klappt, und auch wenn man jemanen runterschlägt, wird es als Kill gezeählt, ABER wird nun jeder Kill zwei mal gezählt... Hast du was, das das vermeidet? :D
     
    #9
  10. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Wäre ein Screenshot okay?
     
    #10
  11. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    HAHAHA. Ich habs gewusst.
    Ist nunmal so, wenn du im void stirbst, dann stirbst du 2 mal.
     
    #11
  12. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Hast du was dagegen?
     
    #12
  13. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Wie ist deine Frage gemeint?
     
    #13
  14. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
     

    Anhänge:

    #14
  15. 777dodi
    Offline

    777dodi

    Registriert seit:
    31. Oktober 2016
    Beiträge:
    10
    Ob du weißt, ob man das ändern kann. ALso das man nur 1 Mal Killt und Stirbt.
     
    #15
  16. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Ja weiß ich
     
    #16
  17. KeVoZ_
    Offline

    KeVoZ_

    Registriert seit:
    9. Mai 2015
    Beiträge:
    62
    Minecraft:
    Curverneur
    Auch wenn es mich gerade nicht interessiert, würde es anderen da draußen sehr wohl interessieren, was du dagegen unternommen hast.
    Wärest du bitte so freundlich, die anderen in deinen Wissenskreis mit aufzunehmen?

    Daankee
     
    #17
    Creepy92 gefällt das.
  18. PrimitiverTyp
    Offline

    PrimitiverTyp

    Registriert seit:
    7. November 2016
    Beiträge:
    9
    Für diese dreiste Antwort gehörst du eigentlich aus diesem Forum ausgeschlossen, wenn es nach mir ginge...

    Um die Frage zu beantworten: Damit das PlayerDeathEvent nicht doppelt oder mehrfach ungewollt ausgerufen wird, kann man sich das Spieler Objekt in einer Liste mit beispielsweise dem UNIX timestamp abspeichern und nach einer gewissen Zeit dann wieder entfernen. Solange der Spieler in der Liste enthalten ist, wird entsprechend das Event "beendet".

    Das könnte zum Beispiel so aussehen:

    Code (Text):
    1. private static HashMap<Long, UUID> already = new HashMap<>();
    2.  
    3.     public static void updateAlready() {
    4.  
    5.         Iterator it = already.entrySet().iterator();
    6.         while (it.hasNext()) {
    7.             Entry item = (Entry) it.next();
    8.             long en = (long) item.getKey();
    9.             long now = System.currentTimeMillis();
    10.  
    11.             if (en < now) {
    12.                 if (now - en >= 5000) {
    13.                     it.remove();
    14.                 }
    15.             }
    16.         }
    17.  
    18.     }
    Code (Text):
    1. @EventHandler
    2.     public void onDeaths(PlayerDeathEvent e) {
    3.  
    4.         Player p = e.getEntity();
    5.         Player killer = e.getEntity().getKiller();
    6.  
    7.         if (already.containsValue(p.getUniqueId()))
    8.             return;
    9.  
    10.         PlayerInfo i = new PlayerInfo(p);
    11.  
    12.         if (killer == null) {
    13.             if (Attack.isInAttack(p)) {
    14.  
    15. [...]
    Hoffentlich konnte ich helfen.
     
    #18
    KeVoZ_ gefällt das.
  19. Figz
    Offline

    Figz

    Registriert seit:
    9. Mai 2016
    Beiträge:
    34
    Entschuldige der Herr, jedoch liefere ich lieber keine Lösung, als so eine wie du sie hier lieferst ;)


    Code (Text):
    1. @EventHandler
    2.   public void onPlayerDamage(EntityDamageEvent event)
    3.   {
    4.   if ((event.getEntity() instanceof Player)) {
    5.   if (event.getCause() == EntityDamageEvent.DamageCause.VOID)
    6.   {
    7.   event.setCancelled(true);
    8.  
    9.   ((Player)event.getEntity()).setHealth(0.0D);
    10.   }
    11.   }
    12.   }

    ODER:

    Code (Text):
    1.  
    2.   @EventHandler
    3.   public void onPlayerDamage(EntityDamageEvent event)
    4.   {
    5.   if ((event.getEntity() instanceof Player))
    6.   {
    7.   if (event.getCause() == EntityDamageEvent.DamageCause.VOID)
    8.   {
    9.   Bukkit.getScheduler().runTaskLater(JavaPlugin, new Runnable()
    10.   {
    11.   @Override
    12.   public void run()
    13.   {
    14.   ((Player) event.getEntity()).setHealth(0.0D);
    15.   }
    16.   }, 1);
    17.  
    18.   }
    19.   }
    20.   }
    21.  

    Meinetwegen auch canceln UND einen Tick warten.

    Nachteil beim Canceln ist, dass man keinen Schadensound hört ;)


    PS: Hab einfach vergessen hier die Lösung zu posten, funktionieren PL hat der TE schon längst..
     
    #19
  20. KeVoZ_
    Offline

    KeVoZ_

    Registriert seit:
    9. Mai 2015
    Beiträge:
    62
    Minecraft:
    Curverneur
    Danke fürs nachholen.
     
    #20