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

losowy item? recipe


Entify

Rekomendowane odpowiedzi

Opublikowano

czesc, czemu to nie dziala?

nie ma errorow, ale nie tworzy receptury.

	@Override
	public void onEnable(){
		items.add(new ItemStack(Material.DIAMOND, 1));
		items.add(new ItemStack(Material.GOLD_INGOT, 1));
		ItemStack is = (ItemStack)getItems().get(Util.rand.nextInt(getItems().size()));
		ShapedRecipe recipe = new ShapedRecipe(is);
		recipe.shape("EE ", "EE ", "  ");
		recipe.setIngredient('E', Material.DRAGON_EGG);
		Bukkit.addRecipe(recipe);
		Bukkit.getPluginManager().registerEvents(new PlayerListener(), this);
	}

 

 

 

JAVA <3

 

Opublikowano

halohaloo, a moze da sie to zrobic jakos inaczej?

chce zeby po wlozeniu 4 jajek do craftingu robil sie losowy item z jakies arraylisty (lista itemstack)

 

 

JAVA <3

 

Opublikowano

Tworzysz recepture tylko raz, więc nie oczekuj, że będzie kilka rezultatów. Zrób sobie recepture ze statycznym rezultatem, wydaje mi się, że z obojetnie jakim, a następnie w evencie PrepareItemCraftEvent sprawdź, czy wszystkie sloty są takie jak przy twoim craftingu, i jeśli tak to ustaw rezultat na losowy z twojego configu czy z czego tam innego chcesz.

Opublikowano
15 minut temu, Jaqobb napisał:

Tworzysz recepture tylko raz, więc nie oczekuj, że będzie kilka rezultatów. Zrób sobie recepture ze statycznym rezultatem, wydaje mi się, że z obojetnie jakim, a następnie w evencie PrepareItemCraftEvent sprawdź, czy wszystkie sloty są takie jak przy twoim craftingu, i jeśli tak to ustaw rezultat na losowy z twojego configu czy z czego tam innego chcesz.

okej, dzieki, pozniej sprawdze

 

 

JAVA <3

 

Opublikowano
2 minuty temu, Sp1di napisał:

@EntifyTu masz  gotowego tuta, bo chyba o to Ci chodzi: https://www.youtube.com/watch?v=UmwAgNNTYFU

 

boze, to co on tam pokazuje zrobilbym w 10 minut

ja chce losowy item, a nie 1.

25 minut temu, Jaqobb napisał:

Tworzysz recepture tylko raz, więc nie oczekuj, że będzie kilka rezultatów. Zrób sobie recepture ze statycznym rezultatem, wydaje mi się, że z obojetnie jakim, a następnie w evencie PrepareItemCraftEvent sprawdź, czy wszystkie sloty są takie jak przy twoim craftingu, i jeśli tak to ustaw rezultat na losowy z twojego configu czy z czego tam innego chcesz.

kurde, mam cos takiego

    @EventHandler
    public void onCraft(final PrepareItemCraftEvent e){
    	if (//tu chce sprawdzic czy 1 slot to xxx && czy 2 slot to xxx itp..)
    }

ale nie wiem jak to zrobic dalej, moglbys troche pomóc? (chociazby to sprawdzanie, reszte ogarne sam)

 

 

JAVA <3

 

Opublikowano

@Entify

Zawsze możesz sprawdzić rezultat craftowanego przedmiotu i jeśli jest jak ten ustalony wcześniej to zmieniasz go na twój losowy za pomocą z tego co pamiętam:
 

event.getRecipe().getInventory().setResult(randomItem);

lub

event.getInventory().getRecipe().setResult(randomItem);

Rezultat sprawdzasz zapomocą tego samego kodu tylko, że metode zmieniasz na getResult.

Jeśli chcesz sprawdzać sloty to spróbuj za pomocą:

event.getInventory().getMatrix();

lub:

event.getInventory().getItem(0);
event.getInventory().getItem(1);
event.getInventory().getItem(2);
event.getInventory().getItem(3);

etc.

Opublikowano
17 minut temu, Jaqobb napisał:

@Entify

Zawsze możesz sprawdzić rezultat craftowanego przedmiotu i jeśli jest jak ten ustalony wcześniej to zmieniasz go na twój losowy za pomocą z tego co pamiętam:
 


event.getRecipe().getInventory().setResult(randomItem);

lub


event.getInventory().getRecipe().setResult(randomItem);

Rezultat sprawdzasz zapomocą tego samego kodu tylko, że metode zmieniasz na getResult.

Jeśli chcesz sprawdzać sloty to spróbuj za pomocą:


event.getInventory().getMatrix();

lub:


event.getInventory().getItem(0);
event.getInventory().getItem(1);
event.getInventory().getItem(2);
event.getInventory().getItem(3);

etc.

dzieki :)

 

@Edit

nie dziala :c

zadnych errorow, ale nic sie nie dzieje

    @EventHandler
    public void onCraft(final PrepareItemCraftEvent e){
		items.add(new ItemStack(Material.DIAMOND, 1));
		items.add(new ItemStack(Material.GOLD_INGOT, 1));
		ItemStack is = (ItemStack)getItems().get(Util.rand.nextInt(getItems().size()));
    	if (e.getInventory().getItem(1).getType() == Material.DRAGON_EGG && 
    			e.getInventory().getItem(2).getType() == Material.DRAGON_EGG && 
    			e.getInventory().getItem(3).getType() == Material.DRAGON_EGG &&
    			e.getInventory().getItem(4).getType() == Material.DRAGON_EGG){
    		e.getInventory().setResult(is);;
    	}
    }
	  public static List<ItemStack> getItems()
	  {
	    return items;
	  }
	private static List<ItemStack> items = new ArrayList();

 

 

 

JAVA <3

 

Opublikowano
Dnia 7/8/2017 o 09:28, Entify napisał:

    @EventHandler
    public void onCraft(final PrepareItemCraftEvent e){
		items.add(new ItemStack(Material.DIAMOND, 1));
		items.add(new ItemStack(Material.GOLD_INGOT, 1));
		ItemStack is = (ItemStack)getItems().get(Util.rand.nextInt(getItems().size()));
    	if (e.getInventory().getItem(1).getType() == Material.DRAGON_EGG && 
    			e.getInventory().getItem(2).getType() == Material.DRAGON_EGG && 
    			e.getInventory().getItem(3).getType() == Material.DRAGON_EGG &&
    			e.getInventory().getItem(4).getType() == Material.DRAGON_EGG){
    		e.getInventory().setResult(is);;
    	}
    }
	  public static List<ItemStack> getItems()
	  {
	    return items;
	  }

 

czy na pewno masz DragonEggi ułożone w taki sposób w craftingu?

*EE

EE*

***

E - dragon egg

* - pusty slot

 

Opublikowano
22 godziny temu, DraftHC napisał:

czy na pewno masz DragonEggi ułożone w taki sposób w craftingu?

*EE

EE*

***

E - dragon egg

* - pusty slot

 

nie. robilem tak:
EE*
EE*

***
dzieki :)

 

 

JAVA <3

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...