Skocz do zawartości
Drogi Gościu. Nie jesteś zalogowany, bądź zarejestrowany na naszym forum, ale pomimo tego możesz tworzyć wątki i odpowiadać w tematach, z tym że wszystkie Twoje wiadomości będą musiały zostać ręcznie zatwierdzone przez Administratora. Z tego powodu zachęcamy Cię do założenia konta (bądź zalogowania), aby uniknąć tych ograniczeń.

glupek25

Wyróżnione odpowiedzi

Twój nick (z serwera): glupek25
Propozycja dotyczy (tytuł): Sen
Opis propozycji: Jeżeli gracz położy się w łóżku, po około pięciu sekundach zalicza mu fakt "przespania się". Bez zmiany pory dnia i niezależnie od innych graczy - tracąc w ten sposób zainteresowanie phantomów (subiektywne bycie niewidzialnym dla tych mobów - w odniesieniu do gracza, który leżał w łóżku). Jest to dosyć irytujące, gdy za każdym razem gdy wyjdzie się w nocy na /warp s, trzeba się borykać z tym niekończącym się utrapieniem, zważając na fakt, że nie da się ich formalnie pozbyć, wykluczając oczywiście samo ich zabicie.
Dodatkowe SS'y: ...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Admin Forum
Admin Forum

Mam nadzieję, że dałoby radę to wprowadzić i jestem na TAK

  • Superka 1

 

image-13.png

Odnośnik do komentarza
Udostępnij na innych stronach

Jestem na TAK.

Co do możliwości wprowadzenia, znalazłem pierwszy lepszy plugin umożliwiający kontrolowanie fantomów: https://github.com/srnyx/personal-phantoms

Jak widać w jego kodzie źródłowym, można kontrolować:

  • spawn fantomów
    /**
    * Called when a creature is spawned into a world.
    * If a Creature Spawn event is cancelled, the creature will not spawn.
    */
    @EventHandler
    public void onCreatureSpawn(@NotNull CreatureSpawnEvent event) {
    	final Entity entity = event.getEntity();
        // Check if Phantom and spawn is natural
        if (entity.getType() == EntityType.PHANTOM && event.getSpawnReason() == CreatureSpawnEvent.SpawnReason.NATURAL) {
    	// Check if any nearby players have phantoms disabled TODO: Find a better way to do this
    	if (entity.getNearbyEntities(10, 35, 10).stream().anyMatch(nearby -> nearby instanceof Player && nearby.getScoreboardTags().contains("pp_no-phantoms")))
          	event.setCancelled(true);
    	}
    }
    • prawdopodobnie nie jest to pożądane, ponieważ gracze, którzy nie spali, powinni dalej mieć wokół siebie respione fantomy
  • targetowanie gracza przez fantomy (atak)
    /**
    * Called when a creature targets or untargets another entity
    */
    @EventHandler
    public void onEntityTarget(@NotNull EntityTargetEvent event) {
    	final Entity target = event.getTarget();
    	if (event.getEntity().getType() == EntityType.PHANTOM && target instanceof Player && target.getScoreboardTags().contains("pp_no-phantoms")) event.setCancelled(true);
    }
    • najbardziej pożądane
  • Zadawanie obrażeń przez fantomy
    /**
    * Called when an entity is damaged by an entity
    */
    @EventHandler
    public void onEntityDamageByEntity(@NotNull EntityDamageByEntityEvent event) {
    	final Entity entity = event.getEntity();
    	final Entity damager = event.getDamager();
    	// Player attacking Phantom
    	if (damager instanceof Player && entity.getType() == EntityType.PHANTOM && damager.getScoreboardTags().contains("pp_no-phantoms")) event.setCancelled(true);
    	// Phantom attacking Player
    	if (damager.getType() == EntityType.PHANTOM && entity instanceof Player && entity.getScoreboardTags().contains("pp_no-phantoms")) event.setCancelled(true);
    }
    • nie powinno wystąpić, jeżeli się zapobiegnie targetowaniu (chyba)
    • część tego kodu anulująca zadawanie obrażeń fantomom przez graczy jest chyba bez sensu
      • gracze, którzy spali powinni być w stanie pomóc innym w walce z fantomami

Być może da się to też zrobić jeszcze prościej, resetując insomnia timer, ale nie znalazłem żadnej dokumentacji tego.

Po weekendzie może sobie tak hobbystycznie ten plugin napiszę, co by deweloperzy nie mieli praktycznie żadnej roboty z wdrożeniem tego 🙂

  • Superka 3
Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 tygodni później...
  • HeadAdmin
HeadAdmin

Nie do końca rozumiem sam sens propozycji, wystarczy się przespać aby fantomy nie atakowały przez kolejne 3dni. Wskoczenie do łóżka raz na godzinę nie jest raczej uciążliwe. Wyspanego gracza przecież fantomy nie atakują.

 

 

2.jpg.fb8f37d4f35cf35defb4d4cc0b5cbde1.jpg

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • HeadAdmin
HeadAdmin

Propozycja została odrzucona!

 

2.jpg.fb8f37d4f35cf35defb4d4cc0b5cbde1.jpg

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...