Skocz do zawartości
  • 0

Jak zablokować kopiowanie?


masterekkkk

Pytanie

19 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, masterekkkk napisał:

Jeżeli mam otwarte gui, i nadajdę na przedmiot w nim kliknę szybko slot 1-8 i szybko zamknę to przedmiot zostaje w eq.

Jak to zablkować?

1. Sprawdź czy nie masz przy tworzeniu GUI jakichś delayów, np. 'wait 1 tick', 'wait 0.5 seconds' itp.

2. Upewnij się, że w GUI itemów nie da się ukraść, w SkQuery to będzie 'to be unstealable', a w normalnym Skriptowym GUI w 'on inventory click' wycofany event (cancel event).

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, masterekkkk napisał:

Posiadam Plugin: TuSke

I jest uzyty cancel event

Lecz kopiowanie dalej działa

Najlepiej podaj swój obecny kod i zobaczymy co powoduje takie problemy. Przy okazji postaram się napisać dla ciebie alternatywę w Skriptowym 'set slot' :)

Edytowane przez xAxee
xAxee

Poprawiam cytat

Notatka dodana przez xAxee

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
13 minut temu, masterekkkk napisał:

Jeśli nie dodaj spowolnienia do itemy w gui sie nie pokażą, działa to tylko tak u npc

 

Przeładowałem skrypt i jest 36 błędów, z czego 2 nie powinny być błędami, a 34 dotyczą 'send title'.

EDIT:

Poprawiłem, są 2 błędy, z czego pierwszy jest przyczyną drugiego. Mianowicie Skript (nie wiem dlaczego) nie rozumie warunku:

if player has 416 oak wood named "&eDab":

EDIT:

Gdy zamieniłem dębowe drewno na diamentową łopatę, to pojawił się kolejny błąd w kolejnej linijce.

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
9 minut temu, masterekkkk napisał:

U mnie nie ma zadnego bledu, mozliwe ze brakuje ci pluginu

 

Jaką masz wersję Skripta oraz jakie masz dodatki?

EDIT:

Dobra, po prostu w mojej wersji (2.4.1) widocznie są inne aliasy. 'oak wood' nie działało, natomiast 'oak log' już działa.

Więc, wracając do tematu, gdy otworzysz szybko GUI, klikniesz w coś i szybko zamkniesz, to item dostajesz?

EDIT:

Cóż, to jest akurat dziwne, że masz taki problem. Użyłeś 'cancel event' co do całego GUI. Masz dwukropek w sprawdzaniu nazwy GUI o spację za daleko :P

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, masterekkkk napisał:

tak ;/

 

Cóż, poprawiłem to, co u mnie powodowało błędy lub wyglądało dziwnie. Zobacz, być może to ci pomoże:

EDIT:

W linijce (u mnie) 176 masz błąd ortograficzny, chodzi o "Brzuzka".

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
8 minut temu, masterekkkk napisał:

Nic nie daje

Masz na myśli, że nic się nie dzieje czy jest tak samo jak wcześniej?

Przy okazji jaką masz wersję Skripta? Zapewne coś w okolicach 2.1-2.2.

Edytowane przez Kormic
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Zmień gui na tuske - reszta to absolutne bagno, nie polecam.

@PanMaruda

mimo wszystko set slot trzeba blokować eventem - tuske robi to automatycznie.

nie wiem co dodaje tuske poza formatowaniem gui, ale na mysli mialem samo formatowanie gui - po prostu moim zdaniem nie ma lepszego sposobu.

chetnie podyskutowalbym w osobnym temacie na ten temat - jezeli odwzajemniasz chec dyskusji mozesz zrobic temat w pogaduszkach

Edytowane przez bludis
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, bludis napisał:

Zmień gui na tuske - reszta to absolutne bagno, nie polecam.

wszystko jest bagnem i nic nie jest bagnem

wszystko zależy od tego w jaki sposób właściciel bagna go wykorzysta

wszystko będzie dobrze, gdy tylko będzie się myśleć nad tym co się robi i jak się robi

wszystko fajnie, ale nie obsypujmy gównem set slota i nie wychwalajmy tak tego TuSKe... zatrzymało się na wersji 1.10, sypie errorami do konsoli i tak naprawdę działa w nim tylko podstawowe formatowanie GUI (czyli jedynie jakieś 15-20% wszystkich jego funkcji)

 

 

A teraz coś na temat kodu (od razu zaznaczam że nie jest to rozwiązanie problemu, a jedynie działania, które mogą pomóc eliminować błędy i bugi w przyszłości - chociaż niewykluczone że i z aktualnym sobie poradzą)

  •  
  •  
  •  
  • ograniczajmy ilość operacji jaką musi wykonać procesor, wyrażenie 'name of inventory' zwraca tekst, więc można go od razu przyrównać do tekstu (nie trzeba go wstawiać do cudzysłowów i procentów). Można też opcjonalnie zaznaczyć ekwipunek do którego się odnosimy w nawiasy - wtedy skript będzie widział że ma się do tego odnieść jako do całości.
  • źle
    if "%inventory name of player's current inventory%" is "&c&l» &f&LKOWAL &c&L&l«" :

    dobrze

    if (inventory name of player's current inventory) is "&c&l» &f&LKOWAL &c&L&l«" :
  •  
  •  
  •  
  • żadnych zbędnych opóźnień, to że wszyscy pisali żeby je dodawać przy efektach ze SkQuery, nie znaczy że trzeba je pchać wszędzie...
  • źle
    open chest (...)
    wait 1 tick
    set slot (...)

    dobrze

    open chest (...)
    set slot (...)
  •  
  •  
  •  
  • zamiast otwierać graczowi puste GUI i pojedynczo wstawiać do niego przedmioty (co może się zbugować) robimy GUI w zmiennej, ustawiamy w nim przedmioty i potem to wypełnione GUI ze zmiennej otwieramy graczowi.

    jeżeli GUI, które robimy jest identyczne dla całego serwera (powiedzmy jakiś panel menu), to wtedy takie GUI tworzymy tylko raz przy starcie serwera i nie obciążamy procesora robiąc go za każdym razem gdy ktoś chce je otworzyć.
    źle
    open chest with 3 rows named "&c&l» &f&LKOWAL &c&L&l«" to player
    
    set player's current inventory's slot 0 to diamond helmet of protection 15
    set player's current inventory's slot 1 to diamond chestplate of protection 15
    set player's current inventory's slot 2 to diamond leggings of protection 15

    dobrze

    set {_gui} to chest with 3 rows named "&c&l» &f&LKOWAL &c&L&l«" to player
    
    set slot 0 of {_gui} to diamond helmet of protection 15
    set slot 1 of {_gui} to diamond chestplate of protection 15
    set slot 2 of {_gui} to diamond leggings of protection 15
    
    open {_gui} to player
  •  
  •  
  •  
  • tak jak w pierwszym przykładzie: 'clicked slot' zwraca indeks klikniętego slotu (liczbę), więc należy go przyrównać do liczby, a nie zapisać jako tekst i przyrównać do liczby w tekście...
    źle
    if "%clicked slot%" is "18":

    dobrze

    if clicked slot is 18:
  •  
  •  
  •  
  • kod trzeba zawsze pisać możliwie optymalnie i krótko

    kiedy tworzysz drzewko warunków, prowadzących do jednego rozwiązania i masz tylko jedną rzecz, którą wykonujesz gdy nie są spełnione, używaj efektu zatrzymującego kod (jest to pewna alternatywa dla 'else') lub połącz wszystkie warunki w jeden i skorzystaj z 'else' (ale tego nie polecam w takim przypadku jak w przykładzie)
    źle
    if player has 416 oak wood named "&eDab":
    	if player has 288 162:0 named "&2Bambus": 
    		if player has 128 birch wood named "&rBrzuzka": 
    			if player has 96 162:1 named "&8Ciemny Dab": 
    				if player has 5 gold ore named "&6Zlota Kosodrzewina": 
    					(jakiś kod)
    				else:
    					close player's inventory
    					send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    			else:
    				close player's inventory
    				send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    		else:
    			close player's inventory
    			send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    	else:
    		close player's inventory
    		send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    else:
    	close player's inventory
    	send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"

    dobrze

    if player has 416 oak wood named "&eDab":
    	if player has 288 162:0 named "&2Bambus": 
    		if player has 128 birch wood named "&rBrzuzka": 
    			if player has 96 162:1 named "&8Ciemny Dab": 
    				if player has 5 gold ore named "&6Zlota Kosodrzewina": 
    					(jakiś kod)
    
    					stop
    close player's inventory
    send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    			

    druga opcja (łączenie warunków, wyliczanie)

    if player has (416 oak wood named "&eDab"), (288 162:0 named "&2Bambus"), (has 128 birch wood named "&rBrzuzka"), (has 96 162:1 named "&8Ciemny Dab") and (5 gold ore named "&6Zlota Kosodrzewina"):
    	(jakiś kod)
    else:
    	close player's inventory
    	send player title "&c&lKOWAL" with subtitle "&f&oNie posiadasz odpowiednich przedmiotow"
    			
  •  
  •  
  •  
  • jeżeli masz kilka warunków następujących po sobie (tak jak tutaj sprawdzanie indeksu slotu) - stawiaj na ich końcach 'stop' lub skorzystaj z 'else' albo 'else if'. Gdy tego nie zrobisz - skrypt pomimo że np. znajdzie potrzebny slot i wykona kod wciąż będzie sprawdzał pozostałe warunki
    źle
    if "%clicked slot%" is "1":
    	(kod)
    if "%clicked slot%" is "2":
    	(kod)
    if "%clicked slot%" is "3":
    	(kod)
    if "%clicked slot%" is "4":
    	(kod)
    dobrze
    if "%clicked slot%" is "1":
    	(kod)
    	stop
    if "%clicked slot%" is "2":
    	(kod)
    	stop
    if "%clicked slot%" is "3":
    	(kod)
    	stop
    if "%clicked slot%" is "4":
    	(kod)
    	stop
    

 

A jeżeli chodzi ogólnie o bugi to można założyć że występują u ciebie ze względu na korzystanie ze starych lub niekompatybilnych ze sobą wersji silnika i pluginu.

 

Edytowane przez PanMaruda
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

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