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

[DL] Plugin - MagicznyZestaw - Skrzynki i klucze jak w CS.


HugoZvPlayZ

Rekomendowane odpowiedzi

Opublikowano

@xMruczek - sam kod już mam ;) Da się to zrobić dużo prościej ;)

Ps. Jak Cię wywalili to widzę, że już nagle kod zacząłeś udostępniać. Czyżby kolejna drama z pluginami od nich?

  • Odpowiedzi 62
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Przetestuję plugin, wydaje się ciekawy. Mam pytanko odnośnie tych skrzynek/kluczy, czy można je też craftować czy tylko z gracza? Bo na jednym serwerze chyba lepiej sprawdziłby się crafting.

Opublikowano

Zrób plugin, który umożliwia TRADE, z graczami. Podobny jak na skkf :).

 

Trade napisze w wolnym czasie, a skrzynki sprawdzę jutro ;)

Ten plugin istnieje nie mozecie wpisać Trade bukkit.org

CPU i5 6600k 4,1GHZ | RAM HyperX SAVAGE 16GB RAMGPU ASUS GTX 1070 ROG STRIX 8GOC |

SSD1 Samsung EVO 850 120GB| SSD2 ADATA SP600 120GB |HDD Toshiba 1TB

Reklama serwera minigames w starym stylu Kliknij tutaj

 

Opublikowano

Przetestuję plugin, wydaje się ciekawy. Mam pytanko odnośnie tych skrzynek/kluczy, czy można je też craftować czy tylko z gracza? Bo na jednym serwerze chyba lepiej sprawdziłby się crafting.

Na razie skrzynki i klucze dropia z graczy.

Opublikowano

Ten sam problem, co do skrzynek.

@_const

Co do TRADE, zrób tablice na której zapisuje item,nazwe,ilosc,opis,enchant i zapisz to w formacie do bazy, potem odszyfruj to. Tak to robiłem na sektorach xcrafters.

public String serializeItemStacks (ItemStack[] items)
    {
        String serialization = items.length + ";";
        for (int i = 0; i < items.length; i++)
        {
            ItemStack is = items[i];
            if (is != null)
            {
                String serializedItemStack = new String();
               
                String isType = String.valueOf(is.getType().getId());
                serializedItemStack += "t@" + isType;
               
                if (is.getDurability() != 0)
                {
                    String isDurability = String.valueOf(is.getDurability());
                    serializedItemStack += ":d@" + isDurability;
                }
               
                if (is.getAmount() != 1)
                {
                    String isAmount = String.valueOf(is.getAmount());
                    serializedItemStack += ":a@" + isAmount;
                }
                
                if(is.getItemMeta() != null && is.getItemMeta().getDisplayName() != null){
                    String isName = is.getItemMeta().getDisplayName();
                    serializedItemStack += ":n@" + isName;
                }
               
                if(is.getType().equals(Material.ENCHANTED_BOOK)){
                    EnchantmentStorageMeta bookmeta = (EnchantmentStorageMeta)is.getItemMeta();
                    Map<Enchantment, Integer> isEnch = bookmeta.getStoredEnchants();
                    if (isEnch.size() > 0)
                    {
                        for (Entry<Enchantment,Integer> ench : isEnch.entrySet())
                        {
                            serializedItemStack += ":e@" + ench.getKey().getId() + "@" + ench.getValue();
                        }
                    } 
                } else {
                    Map<Enchantment,Integer> isEnch = is.getEnchantments();
                    if (isEnch.size() > 0)
                    {
                        for (Entry<Enchantment,Integer> ench : isEnch.entrySet())
                        {
                            serializedItemStack += ":e@" + ench.getKey().getId()+ "@" + ench.getValue();
                        }
                    }  
                }
               
                serialization += i + "#" + serializedItemStack + ";";
            }
        }
        return serialization;
    }
   
    public ItemStack[] deserializeItemStacks (String invString)
    {
        String[] serializedBlocks = invString.split(";");
        String invInfo = serializedBlocks[0];
        ItemStack[] deserializedInventory = new ItemStack[Integer.valueOf(invInfo)];
       
        for (int i = 1; i < serializedBlocks.length; i++)
        {
            String[] serializedBlock = serializedBlocks[i].split("#");
            int stackPosition = Integer.valueOf(serializedBlock[0]);
           
            if (stackPosition >= deserializedInventory.length)
            {
                continue;
            }
           
            ItemStack is = null;
            Boolean createdItemStack = false;
           
            String[] serializedItemStack = serializedBlock[1].split(":");
            for (String itemInfo : serializedItemStack)
            {
                String[] itemAttribute = itemInfo.split("@");
                if (itemAttribute[0].equals("t"))
                {
                    is = new ItemStack(Material.getMaterial(Integer.valueOf(itemAttribute[1])));
                    createdItemStack = true;
                }
                else if (itemAttribute[0].equals("d") && createdItemStack)
                {
                    is.setDurability(Short.valueOf(itemAttribute[1]));
                }
                else if (itemAttribute[0].equals("a") && createdItemStack)
                {
                    is.setAmount(Integer.valueOf(itemAttribute[1]));
                }
                else if (itemAttribute[0].equals("e") && createdItemStack)
                {
                    if(is.getType().equals(Material.ENCHANTED_BOOK)){
                        EnchantmentStorageMeta bookmeta = (EnchantmentStorageMeta)is.getItemMeta();
                        bookmeta.addStoredEnchant(Enchantment.getById(Integer.valueOf(itemAttribute[1])), Integer.valueOf(itemAttribute[2]), false);
                        is.setItemMeta(bookmeta);
                    } else {
                        is.addUnsafeEnchantment(Enchantment.getById(Integer.valueOf(itemAttribute[1])), Integer.valueOf(itemAttribute[2]));
                    }
                }
                else if (itemAttribute[0].equals("n") && createdItemStack){
                    ItemMeta meta = is.getItemMeta();
                    meta.setDisplayName(itemAttribute[1]);
                    is.setItemMeta(meta);
                }
            }
            deserializedInventory[stackPosition] = is;
        }
       
        return deserializedInventory;
    }

NIE MA ZA CO.

Tego nie trzeba robić w takim kodzie, nawet nie trzeba zapisywać do bazy danych(chyba, że robisz sektory). Wystarczy do hashmapek zapisać new HashMap<Player, List<ItemStack> i po zakończeniu handlu hashmapka jest usuwana. 

 

Ale ten kod co dałeś to mi się przyda, kiedyś :D 

Opublikowano

@xMruczek - sam kod już mam ;) Da się to zrobić dużo prościej ;)

 

Ps. Jak Cię wywalili to widzę, że już nagle kod zacząłeś udostępniać. Czyżby kolejna drama z pluginami od nich?

Ządna drama, zacznijmy od tego że sam odszedłem! Xkleszczers ma taki syf na plecach ze nie mam zamiaru mieć z tym nic wspólnego. #OSZUSTWA PIENIĘZNE

Kod pisałem ja, więc nic nie udostępniam od nich:*

@ _const

 

 

Tego nie trzeba robić w takim kodzie, nawet nie trzeba zapisywać do bazy danych(chyba, że robisz sektory). Wystarczy do hashmapek zapisać new HashMap<Player, List<ItemStack> i po zakończeniu handlu hashmapka jest usuwana. 

 

Ale ten kod co dałeś to mi się przyda, kiedyś :D

Przecież ty nawet nie wiesz co to jest.

10732745374541468291.png

Opublikowano

@DemomanHACK - jeśli znałbyś javę i zasadę jej działania to wiedział byś, że w mapkach i listach nie powinno się przechowywać graczy, tylko ich nicki ;)

@xMruczek - nie wnikam co ma xCrafters za plecami - wiem do czego Tomasz jest zdolny, a jego tłumaczenia czasami przebijają najlepszy kabaret w TVP2.Co do Trade -  sama metoda jest troszkę bez sensu w sumie - jeśli robiłeś to pod sektory to po co zapisywać to wgl do jakiejkolwiek bazy? Gracz i tak musi ppm + shift na gracza, a nie jest to możliwe z 2 oddzielnych sektorów. Nie lepiej w realtime setować itemak w oknie inventory i zablokować zabieranie rzeczy na podstawie id slotu? Dużo prostsze rozwiązanie. Ps. Byłbym wdzięczny jakbyś zaprosił mnie na skype (u mnie na profilu)
@1361622928-U485574.pngMine1998a - Trade nie wersji 1.7.* nie działa poprawnie, poza tym - autorski dodatek na serwer wprowadzi na pewno dużo lepszą atmosferę.

Opublikowano

@DemomanHACK - jeśli znałbyś javę i zasadę jej działania to wiedział byś, że w mapkach i listach nie powinno się przechowywać graczy, tylko ich nicki ;)

@xMruczek - nie wnikam co ma xCrafters za plecami - wiem do czego Tomasz jest zdolny, a jego tłumaczenia czasami przebijają najlepszy kabaret w TVP2.Co do Trade -  sama metoda jest troszkę bez sensu w sumie - jeśli robiłeś to pod sektory to po co zapisywać to wgl do jakiejkolwiek bazy? Gracz i tak musi ppm + shift na gracza, a nie jest to możliwe z 2 oddzielnych sektorów. Nie lepiej w realtime setować itemak w oknie inventory i zablokować zabieranie rzeczy na podstawie id slotu? Dużo prostsze rozwiązanie. Ps. Byłbym wdzięczny jakbyś zaprosił mnie na skype (u mnie na profilu)

@1361622928-U485574.pngMine1998a - Trade nie wersji 1.7.* nie działa poprawnie, poza tym - autorski dodatek na serwer wprowadzi na pewno dużo lepszą atmosferę.

Wiem, że w mapkach nie zachowuje się graczy, ale to był tylko taki przykład. Można też zapisać OfflinePlayer

Opublikowano

Ludzie Prosze was a czy TO CO MA SERWER HARDCORE SKKFA TO ZNACZY ZE ON BYŁ PIERWSZY? Prosze was.Za granicą pewno ten plugin lata po forach od parunastu miesiecy tylko ze serwer hardcore ma b.dobre osoby które coś potrafią i znalazły to.

Opublikowano

tylka jakoś mam to i mi działa używam spigota @ DemomanHACK

CPU i5 6600k 4,1GHZ | RAM HyperX SAVAGE 16GB RAMGPU ASUS GTX 1070 ROG STRIX 8GOC |

SSD1 Samsung EVO 850 120GB| SSD2 ADATA SP600 120GB |HDD Toshiba 1TB

Reklama serwera minigames w starym stylu Kliknij tutaj

 

Opublikowano

Ej a to działa na serverach bukkit ?

Tak, to jest typowy plugin na bukkita.

Opublikowano

Plugin nie działą na wersji 1.7.2

b_350_20_212121_447DCA_000000_00D2DB.png


Nostro pl - (1.7.2)


IP: atom.owncraft.pl:25692


Creative/Sky-Block/Survival/Parkour/Mob-Arena I wiele więcej!


Spokojny Serwer Gdzie spędzisz miłe chwilę, z ciekawymi ludźmi! :)

Opublikowano

Mam propozycję, dodaj coś takiego, że np jest w configu danego itemy pole:

- repair: true/false

Jeżeli jest ustawione na false, to wtedy nie można naprawić danego przedmiotu :)

dsa

Opublikowano

Widziałem taki Plugin u mc.s**f.ne*, wiecie o co chodzi ale ' Dziękuje za udostępnienie '

Pozdrawiam.

                 Co zrobisz? nic nie zrobisz!

                            xu7iWe.png.pagespeed.ic.Hq5547lA_u.jpg

Opublikowano

Bardzo fajne.. :D
Polecam użyć to niż skryptu.. ;d

#Jeżeli owy administrator dał mi warna, proszę przeczytaj:

Forum dyskusyjne – przeniesiona do struktury stron WWW forma grup dyskusyjnych, która służy do wymiany informacji i poglądów między osobami o podobnych zainteresowaniach przy użyciu przeglądarki internetowej. Na Forum nie istnieje off-topic, połowa administracja mpcforum nie wie co to "off-topic"...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...