Skocz do zawartości
  • 0

Problem klonowania itemów / przedmiotów


Pytanie

Ostatnio na czatbox była taka rozmowa @knugi i @Fendi , z której wynikało, że jest możliwy problem klonowania przedmiotów w związku z użyciem GUI, w którym są jakieś przedmioty dostępne dla gracza (być może chodziło o rodzaj menu w tym GUI).
Poniżej przytaczam fragment tej rozmowy.
M.in. napisali takie coś: "wykopiowanie przedmiotów przy lagach".

Już kiedyś obiło mi się o uszy to "klonowanie itemów", ale nie bardzo rozumiem o co chodzi.
Przeszukałem nasze forum, ale nic konkretnego nie znalazłem o tym (w sensie wyjaśnienia tego problemu).

Czy chodzi o nielegalne zdobywanie itemów przez gracza ?
Mógłby ktoś wyjaśnić na czym polega to klonowanie, kiedy i w jakich warunkach może to wystąpić ? (zdaje się, że przy lagach, ale co tak naprawdę one powodują?)

To pytanie jest właściwie do @knugi i @Fendi , ale jeżeli odpowie ktoś inny, to też będę wdzięczny ;)

 

knugi    26 Paź 22:38
@polsatgraniepl Moje nastawienie co do zmieniania przedmiotów w otwartym gui jest sceptyczne. Chodzi o klonowanie przedmiotów. Chyba, że za każdym razem sprawdzać czy otwarte gui jest tym w którym chcemy ten przedmiot ustawić.
knugi    26 Paź 22:39
Najlepszym rozwiązaniem, według mnie jest robienie inventory w zmiennej np: set {_x} to chest with 3 rows... i później set slot 1 of {_x} to ... a na końcu open {_x} to player.
knugi    26 Paź 22:39
To wyklucza jakiekolwiek klonowanie przedmiotów
Fendi    27 Paź 8:03
@knugi lub zrób interpretację clicked słota w sk, a wygląd graficzny gui w txt
Fendi    27 Paź 8:04
Wtedy nie będzie czego klonować
knugi    27 Paź 8:49
@Fendi nie korzystam z txt, a gdybym napisał w ten sposób skrypt to mało kto by użył, bo txt by się każdemu rozjechały
knugi    27 Paź 8:50
A w ogóle jak bez przedmiotów operować na przedmiotach ?
Fendi    27 Paź 11:50
Sprawdzasz kliknięty slot
knugi    27 Paź 13:05
@Fendi to wiem, ale załóżmy że chcę zrobić listę graczy online. Będzie 200 graczy to trzeba kilka stron zrobić. I jak to zrobić bez przedmiotów?
Fendi    27 Paź 14:52
okej, tylko że lista graczy online, to w tym przypadku będą głowy czy papier, mało wartościowe przedmioty w przypadku gui z powiedzmy zbrojami z protem 10, będą bardziej opłacalne do zrobienia w custom gui aby napewno nie dało sie ich wykopiować przy lagach

 

Edytowane przez ScripteR
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/
Udostępnij na innych stronach

14 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
1 godzinę temu, ScripteR napisał:

Ostatnio na czatbox była taka rozmowa @knugi i @Fendi , z której wynikało, że jest możliwy problem klonowania przedmiotów w związku z użyciem GUI, w którym są jakieś przedmioty dostępne dla gracza (być może chodziło o rodzaj menu w tym GUI).
Poniżej przytaczam fragment tej rozmowy.
M.in. napisali takie coś: "wykopiowanie przedmiotów przy lagach".

Już kiedyś obiło mi się o uszy to "klonowanie itemów", ale nie bardzo rozumiem o co chodzi.
Przeszukałem nasze forum, ale nic konkretnego nie znalazłem o tym (w sensie wyjaśnienia tego problemu).

Czy chodzi o nielegalne zdobywanie itemów przez gracza ?
Mógłby ktoś wyjaśnić na czym polega to klonowanie, kiedy i w jakich warunkach może to wystąpić ? (zdaje się, że przy lagach, ale co tak naprawdę one powodują?)

To pytanie jest właściwie do @knugi i @Fendi , ale jeżeli odpowie ktoś inny, to też będę wdzięczny ;)

 

knugi    26 Paź 22:38
@polsatgraniepl Moje nastawienie co do zmieniania przedmiotów w otwartym gui jest sceptyczne. Chodzi o klonowanie przedmiotów. Chyba, że za każdym razem sprawdzać czy otwarte gui jest tym w którym chcemy ten przedmiot ustawić.
knugi    26 Paź 22:39
Najlepszym rozwiązaniem, według mnie jest robienie inventory w zmiennej np: set {_x} to chest with 3 rows... i później set slot 1 of {_x} to ... a na końcu open {_x} to player.
knugi    26 Paź 22:39
To wyklucza jakiekolwiek klonowanie przedmiotów
Fendi    27 Paź 8:03
@knugi lub zrób interpretację clicked słota w sk, a wygląd graficzny gui w txt
Fendi    27 Paź 8:04
Wtedy nie będzie czego klonować
knugi    27 Paź 8:49
@Fendi nie korzystam z txt, a gdybym napisał w ten sposób skrypt to mało kto by użył, bo txt by się każdemu rozjechały
knugi    27 Paź 8:50
A w ogóle jak bez przedmiotów operować na przedmiotach ?
Fendi    27 Paź 11:50
Sprawdzasz kliknięty slot
knugi    27 Paź 13:05
@Fendi to wiem, ale załóżmy że chcę zrobić listę graczy online. Będzie 200 graczy to trzeba kilka stron zrobić. I jak to zrobić bez przedmiotów?
Fendi    27 Paź 14:52
okej, tylko że lista graczy online, to w tym przypadku będą głowy czy papier, mało wartościowe przedmioty w przypadku gui z powiedzmy zbrojami z protem 10, będą bardziej opłacalne do zrobienia w custom gui aby napewno nie dało sie ich wykopiować przy lagach

 

Generalnie mi chodziło o to, że zamiast wkładać do gui przedmioty jak np poprzez set slot 3 of {_} to dirt, to najbardziej safe jest użycie nakładki graficznej w gui, czyli jest tekstura gui i na w tej teksturze itemy, wtedy tylko odwoluje sie do clicked slot, kiedy gracz kliknie na dany slot

Cytat

Mógłby ktoś wyjaśnić na czym polega to klonowanie, kiedy i w jakich warunkach może to wystąpić ? (zdaje się, że przy lagach, ale co tak naprawdę one powodują?)

bypassowanie cancel eventu przy inventory clicku jest mozliwe na lagach, glownie gdy procesor lub ram jest pod duzym obciązeniem

Wtedy dostajesz ten "niewyciągalny" item z gui do eq

A w przypadku gdy jest to gui np takie jak napisał knugi gdzie cięzko jest to zrobić na txt, to warto zapisać gui do zmiennej i podczas klikniecia zamykac inventory i otwierac je na nowo poprzez funkcje

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338673
Udostępnij na innych stronach

  • 0
27 minut temu, Fendi napisał:

bypassowanie cancel eventu przy inventory clicku jest mozliwe na lagach, glownie gdy procesor lub ram jest pod duzym obciązeniem

Wtedy dostajesz ten "niewyciągalny" item z gui do eq

Dzięki za odpowiedź :)

A mógłbyś to rozpisać w skrócie, w kolejnych krokach/etapach (clicki, eventy, itd.)
co po kolei tam się dzieje, tak że w efekcie gracz może dostać ten "niewyciągalny" item z gui do eq  ?

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338674
Udostępnij na innych stronach

  • 0
9 godzin temu, ScripteR napisał:

że w efekcie gracz może dostać ten "niewyciągalny" item z gui do eq  ?

właśnie o to w tym chodzi, żeby nie mógł go sobie wyciągnąć

on inventory click:
	event-inventory is not player's inventory
	if name of event-inventory is "gui":
		if clicked slot is 1:
			...
		if clicked slot is 9:
			...

A tutorial jak zrobic nakładke graficzną gui masz tutaj

 

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338676
Udostępnij na innych stronach

  • 0

@Fendi masz rację, sprawdzać kliknięty slot jest najbezpieczniej. Ale czasem jak to na chatboxie napisałem, czasem niemożliwe z niektórych czynników, lecz do prostych skryptów jak najbardziej wskazane.

@ScripteR generalnie, zjawisko klonowania przedmiotów narodziło się dawno temu, gdyż ludzie pisali skrypty w ten sposób:
 

open chest with 3 rows named "GUI" to player
wait 2 tick
set slot 0 of player's current inventory to dirt named "Sklonuj mnie"

i to było otwierane np za pomocą komendy.
I było możliwe wpisanie komendy, po czym otworzenie szybko skrzynki którą wcześniej postawili, i ten przedmiot co miał być w custom gui lądował fizycznie w tej skrzynce i był możliwy do użycia w grze.
Dlatego moje zalecenie jest robienie GUI w zmiennej, a następnie otwarcie już zrobionego GUI z zmiennej dla gracza

przykład:
 

set {_x} to chest with 3 rows named "GUI"
set slot 0 of {_x} to dirt named "Haha, nie sklonujesz mnie"
open {_x} to player

W tym wypadku blokujemy możliwość ustawienia tych przedmiotów w ewentualnej fizycznej skrzyni.
Jak już mamy zrobione gui, to trzeba zrobić event i operować na tym GUI jak napisał kolega wyżej, pozwól że zrobię cytat.

 

30 minut temu, Fendi napisał:
on inventory click:
	event-inventory is not player's inventory
	if name of event-inventory is "gui":
		if clicked slot is 1:
			...
		if clicked slot is 9:
			...

Tylko zabrakło tutaj effectu cancel event gdyż jak go nie ma to gracz i tak będzie mógł ten przedmiot sobie wziąć. Bo o tym co Fendi pisze to otwieramy w ogóle pusty ekwipunek z jakimś textrure packiem i operujemy tylko na nich.

Generalnie, mi by się nie chciało robić tych texture packów z kilku powodów:
Jest to czasochłonne, nie jestem dobry w grafice i uwielbiam defaultowy texture pack.

Zatem, jako skripter jestem zmuszony do całkowitego minimalizowania takiego efektu jakim jest klonowanie przedmiotów.

Jak są jeszcze jakieś pytania, to je zadaj z chęcią odpowiem.
Pozdrawiam #Knugi
 

///Edit:
Fendi właśnie też i z tego rozwiązania nie jest zadowolony, gdyż napisał

  

9 godzin temu, Fendi napisał:

bypassowanie cancel eventu przy inventory clicku jest mozliwe na lagach, glownie gdy procesor lub ram jest pod duzym obciązeniem

Mam na to rozwiązanie: Zmniejsz ilość graczy lub weź mocniejszy sprzęt. 
 

Edytowane przez knugi
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338677
Udostępnij na innych stronach

  • 0
Cytat

Mam na to rozwiązanie: Zmniejsz ilość graczy lub weź mocniejszy sprzęt. 

Właśnie dla osób co dopiero zaczynają jest wskazane robienie gui na txt, bo zazwyczaj takie serwery mają słabszy sprzęt

Cytat

Generalnie, mi by się nie chciało robić tych texture packów z kilku powodów:
Jest to czasochłonne, nie jestem dobry w grafice i uwielbiam defaultowy texture pack.

Nie chodzi w zasadzie o robienie całkiem customowego gui, a kopiowanie ikon przedmiotów z defaulotego txt i wklejanie je do pustych ikon gui, co nie jest trudne ,a zabiera może 10-15 sekund na jeden slot

Cytat

Tylko zabrakło tutaj effectu cancel event gdyż jak go nie ma to gracz i tak będzie mógł ten przedmiot sobie wziąć.

Tak zapomnialem cancel eventu, jednak nie ma to znaczenia. Txt inventory nie ma w sobie przedmiotów więc gracz nic nie mógłby wziąć.

Jedynie można go użyć aby gracz nic do tego gui nie wsadzał.

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338680
Udostępnij na innych stronach

  • 0
15 minut temu, Fendi napisał:

kopiowanie ikon przedmiotów z defaulotego txt i wklejanie je do pustych ikon gui, co nie jest trudne ,a zabiera może 10-15 sekund na jeden slot

Być możliwe, że tak. Lecz sama ikona przedmiotu jest absurdalna, gdyż nie można zawrzeć nazwy przedmiotu i jego lore. Wtedy skąd gracz ma wiedzieć co dany slot oznacza.

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338682
Udostępnij na innych stronach

  • 0
1 godzinę temu, knugi napisał:

Być możliwe, że tak. Lecz sama ikona przedmiotu jest absurdalna, gdyż nie można zawrzeć nazwy przedmiotu i jego lore. Wtedy skąd gracz ma wiedzieć co dany slot oznacza.

tooltip bądź txt na itemy z daną nazwą, po prostu również kopiujesz txt danego przedmiotu i ustawiasz je jako tekstura jaja nazwanego "Diaxowy miecz". W przypadku gdyby ktoś kopiował jaja były bo one o wiele mniej inwazyjne niż miecz sharp 10.

Co prawda jest z tym już więcej zabawy, aczkolwiek bezpieczeństwo na wiekszych (pod względem rozbudowania) serwerach jest ważne.

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338685
Udostępnij na innych stronach

  • 0
21 minut temu, Fendi napisał:

Co prawda jest z tym już więcej zabawy, aczkolwiek bezpieczeństwo na wiekszych (pod względem rozbudowania) serwerach jest ważne.

Albo "większe" serwery mogą robić GUI na pluginach, w których nie ma mowy o żadnym kopiowaniu nawet w przypadku laga.

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338688
Udostępnij na innych stronach

  • 0
3 godziny temu, LeviBoyPL napisał:

Albo "większe" serwery mogą robić GUI na pluginach, w których nie ma mowy o żadnym kopiowaniu nawet w przypadku laga.

Rozumiem, że chodzi o inne, dedykowane pluginy do GUI ?
(zamiast Skripta ?)

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338692
Udostępnij na innych stronach

  • 0

OK, @knugi dzięki za wyjaśnienia - teraz kumam na czym polegał ten problem "klonowania" ;)

To odwołanie do "current inventory" jest rzeczywiście ryzykowne, bo faktycznie przy lagach może ono zostać podmienione, a pomysł na użycie zmiennej dla GUI rozwiązuje to 👍

Sorki za lamerskie pytanie ;) , ale co znaczy: "robienie gui na txt" ?
Chodzi o jakiś plik TXT czy to jest skrót od TexturePack ?

Natomiast rozumiem, że aby pokazać graczowi w GUI obrazki z defaultowego texture packa, to można wstawiać do GUI rzeczywiste itemki z gry ?
I wtedy właśnie jest ryzyko ich sklonowania ?

Dlatego pisałeś o ewent. zrobieniu własnego texture packa, jeżeli nie chcielibyśmy wstawiać tych prawdziwych itemków ?

I jeszcze nie zrozumiałem poniższego:

8 godzin temu, knugi napisał:

Tylko zabrakło tutaj effectu cancel event gdyż jak go nie ma to gracz i tak będzie mógł ten przedmiot sobie wziąć.

? Czy to się łączy z tym, co napisał Fendi:

"bypassowanie cancel eventu przy inventory clicku jest mozliwe na lagach"

Jakie jest tutaj znaczenie tego "cancel eventu" ?
I czy chodzi tu nadal o ryzyko sklonowania itema ?

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338694
Udostępnij na innych stronach

  • 0
4 minuty temu, ScripteR napisał:

 

Cancel event anuluje interakcję.

Jeżeli w tym przypadku mamy inventory click event, to on uruchamia instrukcję podczas kliknięcia myszką w GUI.

Tak jakby chciał podnieść przedmiot.

Dlatego piszemy cancel event, aby mu zablokować wzięcie tego przedmiotu.

To samo tyczy się, gdyby chciał przedmiot tam włożyć 

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338695
Udostępnij na innych stronach

  • 0
Cytat

Sorki za lamerskie pytanie ;) , ale co znaczy: "robienie gui na txt" ?
Chodzi o jakiś plik TXT czy to jest skrót od TexturePack ?

Texture pack

Cytat

Natomiast rozumiem, że aby pokazać graczowi w GUI obrazki z defaultowego texture packa, to można wstawiać do GUI rzeczywiste itemki z gry ?

wtedy to co napisałem nie będzie mieć sensu, bo sposób na gui txt polega właśnie na tym, że gui nie zawiera przedmiotów, lub są to takie bezużyteczne.

Cytat

? Czy to się łączy z tym, co napisał Fendi:

"bypassowanie cancel eventu przy inventory clicku jest mozliwe na lagach"

Jakie jest tutaj znaczenie tego "cancel eventu" ?
I czy chodzi tu nadal o ryzyko sklonowania itema ?

Tak.

Znaczenie takie jak wszędzie. 

Chociaż tworzenie gui na zmiennej zaprezentowanej przez knugiego jest dość dobre i sam tego używam, jednak w przypadku gui z jakimiś ważnymi przedmiotami lepsze jest txt aby ktoś kiedyś nawet przez przypadek nie wydupił ekonomii serwerowej.

Sam również do tego gui na zmiennej dodaje zawsze close player's inventory na koncu i otwieram ponownie gui

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338696
Udostępnij na innych stronach

  • 0

@Fendi @knugi Dzięki za wszystkie wyjaśnienia :)

Rozumiem już co z tymi eventami - trzeba po prostu obsłużyć odpowiednie zdarzenia, tak żeby wyeliminować różne "furtki (czy tam - "zalepić dziury") do nielegalnych działań graczy ;)

Ale rzeczywiście, podoba mi się to zrobienie GUI na texture pack, nawet jeżeli jest więcej z tym roboty, bo nie pozwala na żadne hacki :D

Odnośnik do komentarza
https://skript.pl/temat/56527-problem-klonowania-item%C3%B3w-przedmiot%C3%B3w/#findComment-338783
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ę...