Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Inne] Java Bukkit plugin- Problemy z pisaniem pluginów? Pisz!


Rekomendowane odpowiedzi

  • Odpowiedzi 52
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Jeśli dobrze wykorzystałeś klasę, napisaną przez gościa to powinno działać. On stworzył taki pomocnik dla innych, aby ich kod był prostszy do napisania. Jak możesz to podaj kod i jakie błędy masz w konsoli/środowisku.

Opublikowano

Ja mam 2 pytania :< jak zrobić by każdy gracz miał szanse widzieć inny prefix u tego samego gracza NP: (chodzi o prefix w grze, nie na czacie)

 

1 gracz ma nick: Gracz1

2 gracz ma nick: Gracz2

3 gracz ma nick: Gracz3

 

I np:

Gracz1 nad Gracz3 widzi nick: [Przyjaciel] Gracz3

Gracz2 nad Gracz3 widzi nick: [Wróg] Gracz3

Oraz drugie pytanie:

 

Jak się zabrać by stworzyć własnego zombie, np sprawić by zachowywał się jak pies? :D

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Witam

mam pewien problem a mianowicie wywala mi błąd gdy klikam danym itemem (ogólnie nie działa wszystko z PlayerInteractEvent).

Jak to naprawić? Powiem jeszcze że kod był taki jak wcześniej a wtedy nie wyskakiwał żaden błąd i plugin działał bez problemu. Zmieniałem także pliki serwerowe ale to dalej bez rezultatu :/

Liczę na pomoc a tu macie ten błąd

http://pastebin.com/dQ0KQZap

Pozdrawiam :)

Opublikowano

Witam

mam pewien problem a mianowicie wywala mi błąd gdy klikam danym itemem (ogólnie nie działa wszystko z PlayerInteractEvent).

Jak to naprawić? Powiem jeszcze że kod był taki jak wcześniej a wtedy nie wyskakiwał żaden błąd i plugin działał bez problemu. Zmieniałem także pliki serwerowe ale to dalej bez rezultatu :/

Liczę na pomoc a tu macie ten błąd

http://pastebin.com/dQ0KQZap

Pozdrawiam :)

Tak trudno przeczytać? :D

Caused by: java.lang.NullPointerException

        at pl.LinerPL.SetSpawn.setSpawn(SetSpawn.java:31) ~[?:?]

 

nawet jest zaznaczone w której linijce

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

@Karolina_666 no nie tylko że wcześniej błędów nie było a teraz są a przywróciłem do wcześniejszego stanu i dalej tak było :P

Zaraz sprawdzę czy to jakiś poważny błąd :P

 

EDIT

Sprawdzałem i w tej linii co niby jest błąd to jest pusta xD Takie wielkie WTF o.O

Opublikowano

nie ma żadnych błędów po prostu nic nie wyskakuje. ;(

Możliwe, że coś jest nie tak i najzwyczajniej niema wywołanej funkcji. Podaj kod na pw.

 

 

Ja mam 2 pytania :< jak zrobić by każdy gracz miał szanse widzieć inny prefix u tego samego gracza NP: (chodzi o prefix w grze, nie na czacie)

 

1 gracz ma nick: Gracz1

2 gracz ma nick: Gracz2

3 gracz ma nick: Gracz3

 

I np:

Gracz1 nad Gracz3 widzi nick: [Przyjaciel] Gracz3

Gracz2 nad Gracz3 widzi nick: [Wróg] Gracz3

 

Oraz drugie pytanie:

 

Jak się zabrać by stworzyć własnego zombie, np sprawić by zachowywał się jak pies? :D

Co do pierwszego pytania: nie bawiłem się TagApi, ale sprawdzę to.

Drugie pytanie: trzeba zespawnować zombie, nadać nazwę, określić cel(.setTarget(player)), dodać event- gdy atakuje to event.setCanceled(true). Można jeszcze się pobawić w właściciela i interactEvent- zatrzymanie w miejscu. Można dodać jakieś bajery: PlayerDamageEvetnt pobranie atakującego i nadanie go jako cel- trzeba wtedy dać w pierwszym evencie jakieś zabezpieczenia, aby nie atakował właściciela lub jeśli zmienna atakuj==false.

 

 

 

@Karolina_666 no nie tylko że wcześniej błędów nie było a teraz są a przywróciłem do wcześniejszego stanu i dalej tak było :P

Zaraz sprawdzę czy to jakiś poważny błąd :P

 

EDIT

Sprawdzałem i w tej linii co niby jest błąd to jest pusta xD Takie wielkie WTF o.O

 

 

Cóż, bez kodu i Salomon nie naprawi.

Opublikowano

Możliwe, że coś jest nie tak i najzwyczajniej niema wywołanej funkcji. Podaj kod na pw.

 

 

Co do pierwszego pytania: nie bawiłem się TagApi, ale sprawdzę to.

Drugie pytanie: trzeba zespawnować zombie, nadać nazwę, określić cel(.setTarget(player)), dodać event- gdy atakuje to event.setCanceled(true). Można jeszcze się pobawić w właściciela i interactEvent- zatrzymanie w miejscu. Można dodać jakieś bajery: PlayerDamageEvetnt pobranie atakującego i nadanie go jako cel- trzeba wtedy dać w pierwszym evencie jakieś zabezpieczenia, aby nie atakował właściciela lub jeśli zmienna atakuj==false.

 

 

 

 

 

Cóż, bez kodu i Salomon nie naprawi.

 

Po 1. Jak zrobisz to o czym napisałam za pomocą TagAPI to GZ :D (nie da się + psuje skiny)

 

po 2. Kompletnie nie :D nie zrobisz tak żadnego nowego zombie :>

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Po 1. Jak zrobisz to o czym napisałam za pomocą TagAPI to GZ :D (nie da się + psuje skiny)

 

po 2. Kompletnie nie :D nie zrobisz tak żadnego nowego zombie :>

 

Co do pkt. 1. Bez problemu przecież dzięki TagAPI możemy pobrać gracza któremu nadajemy nick (Gracz 3) i u którego zmieniamy nick innemu (Gracz 1). :P Sam takie coś robiłem. A to że psuje skiny to już inna sprawa xD

Opublikowano

Co do pkt. 1. Bez problemu przecież dzięki TagAPI możemy pobrać gracza któremu nadajemy nick (Gracz 3) i u którego zmieniamy nick innemu (Gracz 1). :P Sam takie coś robiłem. A to że psuje skiny to już inna sprawa xD

Powodzenia, dodaj aż 12 znaków do nicku :> zostają ci 4 znaki na nick

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Co do tych max. 16 znaków- tak jak pisałem nigdy się tym nie bawiłem, ale można spróbować kolorami(AQUA, RED) :D

A z Zombie nie rozumiem, tego zdania:
"nie zrobisz tak żadnego nowego zombie".

Zrobiłem:

Zombie zombie = (Zombie) p.getWorld().spawnEntity(p.getLocation(),EntityType.ZOMBIE);
zombie.setTarget(p);
zombie.setCustomName("Zombie "+p.getName());
zombie.setCustomNameVisible(true);

Tylko jeszcze nie rozgryzłem tego setTarget();, coś mi nie działa :D

Opublikowano

Co do tych max. 16 znaków- tak jak pisałem nigdy się tym nie bawiłem, ale można spróbować kolorami(AQUA, RED) :D

 

A z Zombie nie rozumiem, tego zdania:

"nie zrobisz tak żadnego nowego zombie".

Zrobiłem:

Zombie zombie = (Zombie) p.getWorld().spawnEntity(p.getLocation(),EntityType.ZOMBIE);
zombie.setTarget(p);
zombie.setCustomName("Zombie "+p.getName());
zombie.setCustomNameVisible(true);

Tylko jeszcze nie rozgryzłem tego setTarget();, coś mi nie działa :D

bo setTarget po prostu nie działa :>

 

A mi chodzi by zrobić zombie które same z siebie będzie zachowywało się jak wybrany mob :>

 

Oj coś słaba ta twoja bukkitowa java <3

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Teraz to ja nie rozumiem pytania. Czyli chodzi o zmianę całego SI zombiaka? Z tego co wiem jest to trudno zrobić z poziomu pluginów. Czy tylko edycja niektórych "odruchów"?

Opublikowano

Teraz to ja nie rozumiem pytania. Czyli chodzi o zmianę całego SI zombiaka? Z tego co wiem jest to trudno zrobić z poziomu pluginów. Czy tylko edycja niektórych "odruchów"?

O zmianę AI :<

Da się z pluginów, tylko nie koniecznie używając samego API Bukkita :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

To już nie na nasze proste głowy i nie na taki temat. To już trzeba do bukkit.org. Zobaczę, może kiedyś coś takiego zrobię, ale to jeszcze dużo pluginów i nauki...

Opublikowano

To już nie na nasze proste głowy i nie na taki temat. To już trzeba do bukkit.org. Zobaczę, może kiedyś coś takiego zrobię, ale to jeszcze dużo pluginów i nauki...

Czeba w pluginie zrobić klase które rozszerza np EntityWolf (z net.minecraft.server nie z bukkita), problemem ze zrobieniem zombie którego opisałam... było by same ustawienie tego jak trzeba, myśle że najprościej było by własnie użyć od razu psa, ustawić sobie opcje np zmienić to że losowo atakuje owce na losowe ataki innych psów :D

 

A potem fałszować ID moba, tak by gracz widział zombie :D

 

 

Co do kodu od TAG-ów

public class Tag {
    private static PacketAdapter packet;
    private static Scoreboard sb;
 
    public Tag() {
        sb = Bukkit.getScoreboardManager().getMainScoreboard(); // Jeśli potrzebujesz to ScoreboardManager daj osobno + jakis statyczny getter.
        // Nie wiem czemu ale musze używać getMainScoreboard, inne scorebordy mi nie działają (lub coś źle robie)
        packet = new PacketAdapter(IOAN.getThis(), ListenerPriority.NORMAL, Arrays.asList(PacketType.Play.Server.SCOREBOARD_TEAM)) {
 
            @Override
            public void onPacketSending(final PacketEvent event) {
                Player target = event.getPlayer(); //gracz do którego są wysyłane informacje
                StructureModifier<String> eventData = event.getPacket().getStrings(); //Pobieramy wszystkie stringi z packeta.
                /*
                * ID są jak w zwykłej liście, od 0.
                * 0 - Nazwa drużyny. - Nazwyj Teamy nickiem gracza, każdy musi
                * mieć włąsnego tema (zapisują się po wyłączeniu servera),
                * dzięki temu możesz sprawdzić nick gracza który ma wyświetlać
                * tego TAG-a.
                * Możesz tez po prsotu użyc API bukkita by zdobyć drużyne o tej
                * nazwie i sprawdzic jaki jest tam gracz, Ale tak jest chyba
                * szybciej?
                * PS: sam sobie wymyśl jak chcesz to zrobić 
                *
                * 1 - Display name
                * 2 - prefix
                * 3 - suffix
                */
                if (target.getName().equalsIgnoreCase("gracz")) {//Tutaj powinieneś sprawdzić jaki tag powinien widzieć ten gracz.
                    eventData.write(2, "Prefix/TAG");
                }
                //PS dane odczytujesz: eventData.read(int id); np eventData.read(2) to prefix
            }
        };
        IOAN.getProt().addPacketListener(packet);
    }
 
    public static void registerPlayer(Player player) {
        String nickname = player.getName();
        if (sb.getTeam(nickname) != null) // jeśli już istnieje taka drużyna to "anuluje" operacje
            return;
        Team team = sb.registerNewTeam(player.getName()); // Rejstruje nową drużyne.
        team.addPlayer(player); // Dodaje gracza do drużyny (PS: mozna to robić też na graczach offline)
        // I teraz dodatkowo możesz odrazu ustawić jakis Prefix/sufix itp.
        // Wtedy np nie bd musiał zawsze go zmieniać w evencie, tylko wtedy gdy potrzebne
        team.setPrefix(fixMsg("&a[&bTAG&a] "));
        team.setSuffix(fixMsg(" &4<3"));
        team.setDisplayName("display name"); // Nawet nie wiem czy to gdzieś sie wyswietla, ale może ci sie przyda, do zapisania czegoś (ale chyba też max 16 znaków)
     
        //Możesz tez pobawić się robiąc 1 drużyne dla każdej gildi {I tak możesz wysłać inny TAG do każdego gracza}, wtedy dodatkowo masz takie opcje:
        team.setCanSeeFriendlyInvisibles(true); // nie pamiętam co to robi, więc domyślaj się po nazwie lub szukaj w API 
        team.setAllowFriendlyFire(false); // możesz np wyłączyć FriendlyFire :>
     
        //Dodatkowe, nie wpisuj tego w kodzie od tak :P
        team.removePlayer(player); //Usuwa gracza
        team.getPlayers(); //Lista graczy
        // reszte oglądaj sobie sam, to zwykły bukkit.
    }
 
    // To daj sobie do jakiejś klasy z dodatkami, bo ci sie przyda też do inncyh wiadomości :> chyba że już taką masz.
    public static String fixMsg(String msg) {
        return ChatColor.translateAlternateColorCodes('&', msg.replace("%n", "\n"));
    }

skopiowane z mojego posta z innego forum jak coś :P

 

PS: tak właściwe to nie trzeba się bawić drużynami :D można po prostu wysyłać fałszywe.

Ale jak dla mnie to jest wygodniejsze :>

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Jak stworzyć sesje czy coś? 

Przykład: logowanie gracza. po zalogowaniu plugin "wie" ze gracz już się zalogował. i dopóki się nie wyloguje sesja bedzię istnieć.

Opublikowano

po prostu nie usuwasz gracza kompletnie gracza z pamięci podczas wylogwania?

Tak by był dalej uznany jako zlogowany, i podczas logowania sprawdzasz czy juz jest zalogowany czy nie

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...