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

[Pytanie] Pytanie - co lepsze pluginy, czy skrypty?


Rekomendowane odpowiedzi

Opublikowano

cześć, mam kolejne pytanko dot pluginów a skryptów. Czy skrypt np na gui menu będzie lepszy w pluginie czy skrypcie.. Ponieważ mam dylemat, bo nie wiem czy przy aktywnych 75slotach na serwerze będą większe obciążenia (takie widoczne) niż przy pluginie. Oczywiście mówię tutaj o Craftserve - PREMIUM


Opublikowano

Moim zdaniem nie powinno byc to odczuwalne - chyba ze ktos ma papierowego neta :D.

 

Co do pytania to bym ci polecil plugin bo dlatego ze mozesz go ladniej rozwinac niz plugin, a w skripcie nie mozesz robic kontroli zdan czy dobrze napisales.

Opublikowano

Przy skryptach? Masz błąd i Skript Ci to wykrywa, masz dokładnie podaną linijkę i co jest źle.

 

Pluginy się lepiej sprawdzą, zdecydowanie. Skrypty na GUI, ciągle używane i 75 osób? Tutaj odpuściłbym jednak

sobie skrypty, a zrobił plugin. Jak nie dasz rady, to zawsze masz ChestCommands, w porządku plugin.

343731479829004887779.png

Opublikowano

Skoro przyjmujesz na oko 75 graczy, to będą nowi i też będą używać, przypuszczając, że GUI jest na spawnie.

Zależy co chcesz, ja tego nie mogę przewidzieć, co chcesz z tym GUI zrobić. Na pewno o wiele bardziej

proponowałbym plugin, będzie to wszystko lepiej zoptymalizowane. 

343731479829004887779.png

Opublikowano


Zawsze jest takie same, skript laguje ponieważ pobiera zmienne z pliku a nie mysql, hashmapy itp.
Zawszę będzie lagować. Dlatego wszystko dodawaj w pluginach nie skriptach.

Opublikowano

@"Lord Tytan" ok, po twojej opini zdecydowałem na Gui w pluginie. jeśli ktoś to ogarnia to proszę Priv bo niepotrafię zrobić 1 małej rzeczy.

 

 

Co mam zrobić z tym, żeby po kliknięciu byle czego, automatycznie mnie wywalało z menu :?

	public void itemClick(InventoryClickEvent event){		if(event.getInventory().getName().equalsIgnoreCase(ChatColor.GOLD + "POMOC SERWERA TESTCRAFT")){			if(event.getCurrentItem() == null){				return;			}			event.setCancelled(true);			if(event.getCurrentItem().equals(new ItemStack(Material.DIAMOND))){				Player p = (Player) event.getWhoClicked();				p.closeInventory();				p.sendMessage("Dziala.");			}			if (event.getCurrentItem().getItemMeta().getDisplayName().contains("§2§lDrop")) {				Player p = (Player) event.getWhoClicked();					                p.setGameMode(GameMode.SURVIVAL);                p.closeInventory();                Inventory drop;            	drop = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Drop");            	ItemStack da = new ItemStack(Material.DIAMOND);        		ItemMeta daMeta = da.getItemMeta();        		        		daMeta.setDisplayName("§2Diament = 0.8%");        		da.setItemMeta(daMeta);        		            	ItemStack db = new ItemStack(Material.GOLD_INGOT);        		ItemMeta dbMeta = db.getItemMeta();        		        		dbMeta.setDisplayName("§2Zloto = 1.5%");        		db.setItemMeta(dbMeta);        		            	ItemStack dc = new ItemStack(Material.IRON_INGOT);        		ItemMeta dcMeta = dc.getItemMeta();        		        		dcMeta.setDisplayName("§2Zelazo = 2%");        		dc.setItemMeta(dcMeta);        		        		ItemStack dd = new ItemStack(Material.EMERALD);        		ItemMeta ddMeta = dd.getItemMeta();        		        		ddMeta.setDisplayName("§2Emerald = 1.5%");        		dd.setItemMeta(ddMeta);        		        		ItemStack de = new ItemStack(Material.OBSIDIAN);        		ItemMeta deMeta = de.getItemMeta();        		        		deMeta.setDisplayName("§2Obsydian = 4%");        		de.setItemMeta(deMeta);        		        		drop.setItem(2, da);        		drop.setItem(3, db);        		drop.setItem(4, dc);        		drop.setItem(5, dd);        		drop.setItem(6, de);        		        					}

Bo jak dodam to na koniec :

     		Player ps = (Player) event.getWhoClicked();					                ps.closeInventory();        		

to nawet mi nie otwiera tego menu ....

Opublikowano

nie z pobieraniem eq....

jak wcisne dowolny slot czy w moim ekwipunku czy w menu to ma wywalic odrazu, ale tylko w podmenu. Oto cały plik:

package me.ciast3k;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class InvGui implements Listener{

	private final Main plugin;
	
	public InvGui(Main plugin) {
		this.plugin = plugin;
	}
	
	Inventory inv;
	
	public void openInventory(Player p){
		inv = Bukkit.getServer().createInventory(null, 9, ChatColor.GOLD + "POMOC SERWERA TESTCRAFT");
		
		ItemStack diament = new ItemStack(Material.DIAMOND);
		ItemMeta diamentMeta = diament.getItemMeta();
		
		diamentMeta.setDisplayName("§2§lDrop");
		diament.setItemMeta(diamentMeta);
		 
		inv.setItem(2, diament);
		 
		p.openInventory(inv);
	}
	
	@EventHandler
	public void itemClick(InventoryClickEvent event){
		if(event.getInventory().getName().equalsIgnoreCase(ChatColor.GOLD + "POMOC SERWERA TESTCRAFT")){
			if(event.getCurrentItem() == null){
				return;
			}
			event.setCancelled(true);
			if(event.getCurrentItem().equals(new ItemStack(Material.DIAMOND))){
				Player p = (Player) event.getWhoClicked();
				p.closeInventory();
				p.sendMessage("Dziala.");
			}
			if (event.getCurrentItem().getItemMeta().getDisplayName().contains("§2§lDrop")) {
				Player p = (Player) event.getWhoClicked();					
                p.setGameMode(GameMode.SURVIVAL);
                p.closeInventory();
                Inventory drop;
            	drop = Bukkit.getServer().createInventory(null, 9, ChatColor.GREEN + "Drop");

            	ItemStack da = new ItemStack(Material.DIAMOND);
        		ItemMeta daMeta = da.getItemMeta();
        		
        		daMeta.setDisplayName("§2Diament = 0.8%");
        		da.setItemMeta(daMeta);
        		
            	ItemStack db = new ItemStack(Material.GOLD_INGOT);
        		ItemMeta dbMeta = db.getItemMeta();
        		
        		dbMeta.setDisplayName("§2Zloto = 1.5%");
        		db.setItemMeta(dbMeta);
        		
            	ItemStack dc = new ItemStack(Material.IRON_INGOT);
        		ItemMeta dcMeta = dc.getItemMeta();
        		
        		dcMeta.setDisplayName("§2Zelazo = 2%");
        		dc.setItemMeta(dcMeta);
        		
        		ItemStack dd = new ItemStack(Material.EMERALD);
        		ItemMeta ddMeta = dd.getItemMeta();
        		
        		ddMeta.setDisplayName("§2Emerald = 1.5%");
        		dd.setItemMeta(ddMeta);
        		
        		ItemStack de = new ItemStack(Material.OBSIDIAN);
        		ItemMeta deMeta = de.getItemMeta();
        		
        		deMeta.setDisplayName("§2Obsydian = 4%");
        		de.setItemMeta(deMeta);
        		
        		drop.setItem(2, da);
        		drop.setItem(3, db);
        		drop.setItem(4, dc);
        		drop.setItem(5, dd);
        		drop.setItem(6, de);
        		
        		p.openInventory(drop);
        		//TU COS MUSI BYC ...
        		
			}
			if(event.getCurrentItem().equals(new ItemStack(Material.IRON_SWORD))){
				Player p = (Player) event.getWhoClicked();					
				p.closeInventory();
				p.sendMessage("Dziala.");
			}
		}
	}
}

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...