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

Co lepsze skrypt czy plugin?


Rekomendowane odpowiedzi

Opublikowano

W odpowiedzi na ten wątek i na prośbę macjoker007 pisze jak jest naprawdę z tymi 2 sposobami urozmaicania gry na serwerze w Miecraft. W przypadku zarzutów o kłamstwo proszę poprzeć niepodważalnymi dowodami.

Pluginy

To napisane w języku java, skompilowane programy, które wsadza się do folderu plugins w Minecraft i mają rozszerzenie .jar.

 

Skrypt

Czym jest skrypt? Tutaj sprawa się mocno komplikuje. Skrypt to napisane w "języku skript" polecenia, które są tłumaczone na java. Co to oznacza? Większość wątków pokazujących "wielkość" skryptu w stosunku do pluginu robi to źle. Plugin jest gotowy i jest uruchamiany przez serwer, a skrypt jest "tłumaczony" na java, kompilowany i uruchamiany.

 

Skript mimo swoich plusów(uniwersalność, prostota) na też minusy z tego wynikające, czyli uniwersalność funkcji, które przez to nie mogą być zoptymalizowane jak to jest w pluginach.

Plugin się pisze pod konkretne zastosowanie i można go zminimalizować do minimum. "w skript to kilka lini, a w java trzeba napisać ich dużo więcej" taki teksty pojawiają się dużo razy i są kłamstwem. Te kilka lini trzeba przetłumaczyć. Podam przykład akurat na podstawie projektu Arduino i fragmentu biblioteki.

 

Wiem, że w ARDUINO nie pisze się w java, ale to działa na podobnej zasadzie.

 

np. mamy grę w programie mamy gra.dosun(dol);

To tak jak w skript mamy "swoje polecenia".

W rzeczywistości mamy ponad 250 lini kodu

 

void game::dosun(String kierunek) {
if (kierunek == "dol") {
if (pl[3][0] == 0) {
pl[3][0] = pl[2][0];
pl[2][0] = 0;
}
if (pl[2][0] == 0) {
pl[2][0] = pl[1][0];
pl[1][0] = 0;
}
if (pl[1][0] == 0) {
pl[1][0] = pl[0][0];
pl[0][0] = 0;
}
if (pl[3][0] == 0) {
pl[3][0] = pl[2][0];
pl[2][0] = 0;
}
if (pl[2][0] == 0) {
pl[2][0] = pl[1][0];
pl[1][0] = 0;
}
if (pl[3][1] == 0) {
pl[3][1] = pl[2][1]
pl[2][1] = 0;
}
if (pl[2][1] == 0) {
pl[2][1] = pl[1][1];
pl[1][1] = 0;
}
if (pl[1][1] == 0) {
pl[1][1] = pl[0][1] ;
pl[0][1] = 0;
}
if (pl[3][1] == 0) {

pl[3][1] = pl[2][1];
pl[2][1] = 0;
}
if (pl[2][1] == 0) {
pl[2][1] = pl[1][1];
pl[1][1] = 0;
}
if (pl[3][2] == 0) {
pl[3][2] = pl[2][2];
pl[2][2] = 0;
}
if (pl[2][2] == 0) {

pl[2][2] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[0][2];

pl[0][2] = 0;

}

if (pl[3][2] == 0) {

pl[3][2] = pl[2][2];

pl[2][2] = 0;

}

if (pl[2][2] == 0) {

pl[2][2] = pl[1][2];

pl[1][2] = 0;

}



if (pl[3][3] == 0) {

pl[3][3] = pl[2][3];

pl[2][3] = 0;

}

if (pl[2][3] == 0) {

pl[2][3] = pl[1][3];

pl[1][3] = 0;

}

if (pl[1][3] == 0) {

pl[1][3] = pl[0][3];

pl[0][3] = 0;

}

if (pl[3][3] == 0) {

pl[3][3] = pl[2][3];

pl[2][3] = 0;

}

if (pl[2][3] == 0) {

pl[2][3] = pl[1][3];

pl[1][3] = 0;

}



}

if (kierunek == "gora") {

if (pl[0][0] == 0) {

pl[0][0] = pl[1][0];

pl[1][0] = 0;

}

if (pl[1][0] == 0) {

pl[1][0] = pl[2][0];

pl[2][0] = 0;

}

if (pl[2][0] == 0) {

pl[2][0] = pl[3][0];

pl[3][0] = 0;

}

if (pl[0][0] == 0) {

pl[0][0] = pl[1][0];

pl[1][0] = 0;

}

if (pl[1][0] == 0) {

pl[1][0] = pl[2][0];

pl[2][0] = 0;

}



if (pl[0][1] == 0) {

pl[0][1] = pl[1][1];

pl[1][1] = 0;

}

if (pl[1][1] == 0) {

pl[1][1] = pl[2][1];

pl[2][1] = 0;

}

if (pl[2][1] == 0) {

pl[2][1] = pl[3][1];

pl[3][1] = 0;

}

if (pl[0][1] == 0) {

pl[0][1] = pl[1][1];

pl[1][1] = 0;

}

if (pl[1][1] == 0) {

pl[1][1] = pl[2][1];

pl[2][1] = 0;

}



if (pl[0][2] == 0) {

pl[0][2] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[2][0];

pl[2][2] = 0;

}

if (pl[2][2] == 0) {

pl[2][2] = pl[3][2];

pl[3][2] = 0;

}

if (pl[0][2] == 0) {

pl[0][2] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[2][0];

pl[2][2] = 0;

}



if (pl[0][3] == 0) {

pl[0][3] = pl[1][3];

pl[1][3] = 0;

}

if (pl[1][3] == 0) {

pl[1][3] = pl[2][3];

pl[2][3] = 0;

}

if (pl[2][3] == 0) {

pl[2][3] = pl[3][3];

pl[3][3] = 0;

}

if (pl[0][3] == 0) {

pl[0][3] = pl[1][3];

pl[1][3] = 0;

}

if (pl[1][3] == 0) {

pl[1][3] = pl[2][3];

pl[2][3] = 0;

}

}

if (kierunek == "lewo") {

if (pl[0][0] == 0) {

pl[0][0] = pl[0][1];

pl[0][1] = 0;

}

if (pl[0][1] == 0) {

pl[0][1] = pl[0][2];

pl[0][2] = 0;

}

if (pl[0][2] == 0) {

pl[0][2] = pl[0][3];

pl[0][3] = 0;

}

if (pl[0][0] == 0) {

pl[0][0] = pl[0][1];

pl[0][1] = 0;

}

if (pl[0][1] == 0) {

pl[0][1] = pl[0][2];

pl[0][2] = 0;

}





if (pl[1][0] == 0) {

pl[1][0] = pl[1][1];

pl[1][1] = 0;

}

if (pl[1][1] == 0) {

pl[1][1] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[1][3];

pl[1][3] = 0;

}

if (pl[1][0] == 0) {

pl[1][0] = pl[1][1];

pl[1][1] = 0;

}

if (pl[1][1] == 0) {

pl[1][1] = pl[1][2];

pl[1][2] = 0;

}



if (pl[2][0] == 0) {

pl[2][0] = pl[2][1];

pl[2][1] = 0;

}

if (pl[2][1] == 0) {

pl[2][1] = pl[2][2];

pl[2][2] = 0;

}

if (pl[2][2] == 0) {

pl[2][2] = pl[2][3];

pl[2][3] = 0;

}

if (pl[2][0] == 0) {

pl[2][0] = pl[2][1];

pl[2][1] = 0;

}

if (pl[2][1] == 0) {

pl[2][1] = pl[2][2];

pl[2][2] = 0;

}



if (pl[3][0] == 0) {

pl[3][0] = pl[3][1];

pl[3][1] = 0;

}

if (pl[3][1] == 0) {

pl[3][1] = pl[3][2];

pl[3][2] = 0;

}

if (pl[3][2] == 0) {

pl[3][2] = pl[3][3];

pl[3][3] = 0;

}

if (pl[3][0] == 0) {

pl[3][0] = pl[3][1];

pl[3][1] = 0;

}

if (pl[3][1] == 0) {

pl[3][1] = pl[3][2];

pl[3][2] = 0;

}

}

if (kierunek == "prawo") {

if (pl[0][3] == 0) {

pl[0][3] = pl[0][2];

pl[0][2] = 0;

}

if (pl[0][2] == 0) {

pl[0][2] = pl[0][1];

pl[0][1] = 0;

}

if (pl[0][1] == 0) {

pl[0][1] = pl[0][0];

pl[0][0] = 0;

}

if (pl[0][3] == 0) {

pl[0][3] = pl[0][2];

pl[0][2] = 0;

}

if (pl[0][2] == 0) {

pl[0][2] = pl[0][1];

pl[0][1] = 0;

}



if (pl[1][3] == 0) {

pl[1][3] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[1][1];

pl[1][1] = 0;

}

if (pl[1][1] == 0) {

pl[1][1] = pl[1][0];

pl[1][0] = 0;

}

if (pl[1][3] == 0) {

pl[1][3] = pl[1][2];

pl[1][2] = 0;

}

if (pl[1][2] == 0) {

pl[1][2] = pl[1][1];

pl[1][1] = 0;

}

if (pl[2][3] == 0) {
pl[2][3] = pl[2][2];
pl[2][2] = 0;
}
if (pl[2][2] == 0) {
pl[2][2] = pl[2][1];
pl[2][1] = 0;
}
if (pl[2][1] == 0) {
pl[2][1] = pl[2][0];
pl[2][0] = 0;
}
if (pl[2][3] == 0) {
pl[2][3] = pl[2][2];
pl[2][2] = 0;
}
if (pl[2][2] == 0) {
pl[2][2] = pl[2][1];
pl[2][1] = 0;
}
if (pl[3][3] == 0) {
pl[3][3] = pl[3][2];
pl[3][2] = 0;
}
if (pl[3][2] == 0) {
pl[3][2] = pl[3][1];
pl[3][1] = 0;
}
if (pl[3][1] == 0) {
pl[3][1] = pl[3][0];
pl[3][0] = 0;
}
if (pl[3][3] == 0) {
pl[3][3] = pl[3][2];
pl[3][2] = 0;
}
if (pl[3][2] == 0) {
pl[3][2] = pl[3][1];
pl[3][1] = 0;
}
}
}

 

czyli nie liczy się właściwy program, tylko "dodatki", które się w niego wkąpilowuje, tak samo jest ze skript. To jest zamieniane, a że skript jest uniwersalny, to jest jest wyspecjalizowane tak jak w/w kod, tylko są dodatki, które niekoniecznie są używane, ale i tak muszą się załadować.

jednocześnie skript komplikuje całą sprawe, ponieważ mamy de facto dodatkowy plugin do obsługi, kompilacji innych.

I na skryptach nie da się zrobić zawsze tego co jest na pluginach.

Informacje będą na bieżąco dodawane.

Siłą rzeczy i dowodów wnioski nasuwają się same.

 

 

Pozdrawiam

Opublikowano

Ja p******e, skąd ty ten kod wytrzasnąłeś.

K***a błagam nie. XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

W TYM MOMENCIE SKRYPT BYŁBY KURWA WYDAJNIEJSZY 103130413204 RAZY NIŻ TEN KOD. AMEN xD

 

@topic

Dzięki za wyjaśnienie, wreszcie nie będzie problemów z zrozumieniem jak to działa, admini mogliby podpiąć!

784091427630431250239.png

Regulamin sygnatur

Opublikowano

Dzięki za opinię, temat jest w formie informacyjnej I ma rozjaśnić trochę ludzi co do zasady działania skrypta i wytłumaczyć dlaczego część "Badań" podaje źle wyniki.Co do arduino to chodziło, że domyślnie nie pisze się w javie.

Opublikowano

Gościu po twoim stylu pisania wnioskuję, że nie masz prawie wcale pojęcia o tym co piszesz, a jedynie jest to skopiowane z internetu z jakiś gówno źródeł xD

409.jpg?7190

|---> Z o s t a n ę <---|

 

Zostanę technikiem na twój serwer minecraft, zrobie cały serwer według twojego pomysłu!
http://www.mpcforum.pl/topic/1486254-zostanę-technikiem-stworzę-serwer-twojego-pomysłu/#entry12589185

Opublikowano

Gościu po twoim stylu pisania wnioskuję, że nie masz prawie wcale pojęcia o tym co piszesz, a jedynie jest to skopiowane z internetu z jakiś gówno źródeł xD

Skoro tak, to to uzasadnij i podaj skąd to skopiowałem.

Skoro twierdzisz, że kłamie podaj jak jest naprawdę.

Opublikowano

Gościu po twoim stylu pisania wnioskuję, że nie masz prawie wcale pojęcia o tym co piszesz, a jedynie jest to skopiowane z internetu z jakiś gówno źródeł xD

 

Raczej nie skopiowane, trudno byłoby znaleźć takiego kolosa. :_:

 

 

 

Gościu po twoim stylu pisania wnioskuję, że nie masz prawie wcale pojęcia o tym co piszesz, a jedynie jest to skopiowane z internetu z jakiś gówno źródeł xD

Skoro tak, to to uzasadnij i podaj skąd to skopiowałem.

Skoro twierdzisz, że kłamie podaj jak jest naprawdę.

 

 

Napisałeś to sam ale nie powinno się tutaj znaleźć.

Tak, ktoś napisze ,,OOOO ZRÓB LEPSZE SAM OMG".

 

Mącisz po prostu nowym osobom tym ,,poradnikiem", który jest na poziomie nawet nie podstawowym.

784091427630431250239.png

Regulamin sygnatur

Opublikowano

Wydaje mi się, że ten temat jest wyczerpany. Skrypty nie będą nigdy lepsze, bo to język interpretowany wysokiego poziomu, do tego uruchamiany w środowisku Java jednowątkowego Minecrafta.

^


SkChat


INNOWACYJNY POMOCNIK CZATU

Opublikowano

@1361622928-U485574.pngSkrypterPL
To już skopiowałeś od kolegi z innego tematu bo czytałem :P
Skrypt owszem nie będą lepsze, bo nie mają w c**j opcji - a przynajmniej więcej niż pluginy.

Ale skrypty są dobrą "pomocą" i spełniają swoją rolę, no można prawie wszystko w nich napisać.

Podkreślam PRAWIE.

@Oldis - zgadzam się z tobą.

409.jpg?7190

|---> Z o s t a n ę <---|

 

Zostanę technikiem na twój serwer minecraft, zrobie cały serwer według twojego pomysłu!
http://www.mpcforum.pl/topic/1486254-zostanę-technikiem-stworzę-serwer-twojego-pomysłu/#entry12589185

Opublikowano

Wydaje mi się, że ten temat jest wyczerpany. Skrypty nie będą nigdy lepsze, bo to język interpretowany wysokiego poziomu, do tego uruchamiany w środowisku Java jednowątkowego Minecrafta.

Oczywiście,tylko dalej zostaje grono "specjalistów" od programowania, którzy żyją w swoim świecie.

 

@Kraftowy

zgadzam się, skrypt jest fajny jak trzeba coś szybko napisać, przetestować itp. Nie chodzi o pustawe 0 skryptów, tylko uświadomienie o minusach tego rozwiązania i jak to działa. Niektórzy nie mogą ogarnąć tego, bo żyją w świecie "idealnym" i są zamknięci na realia, nie biorą sprawy całościowo, tylko cząstkowo.

 

@Oldis

"Napisałeś to sam ale nie powinno się tutaj znaleźć.

Tak, ktoś napisze ,,OOOO ZRÓB LEPSZE SAM OMG".

 

Mącisz po prostu nowym osobom tym ,,poradnikiem", który jest na poziomie nawet nie podstawowym."

 

Powinno się znaleźć, aby ludzi uświadomić, to nie jest poradnik. Dlaczego mam napisać lepsze? Jak nie programujesz(w java) to się nie wypowiadasz, bo jesteś gorszy? Czyli tylko piekarz może powiedzieć, że chleb jest c***wy? Co do ostatniego zdania to uzasadnij swoją decyzje :) Jak mące w głowach? Co nazywasz poziomem "nie podstawowym"?

Opublikowano

Ale mnie to wkurza bo:

Ludzie piszą, albo same złe rzeczy o pluginach, albo o skryptach.

Czyli 0 oceny.

tu masz podane jak co działa i ew. jakie są tego skutki. Sam używam tego skripta. Nie wszystko zrobisz w skrypcie, ale do prostych rzeczy jest przydatny, jak np. tłumaczenie komend, można to zrobić prosto i szybko.

Opublikowano

Eh już nie wiem który raz powstaje taki temat i zawsze kończy się to tak samo. Specjalnie na tę okazję szukałem podobnej gównoburzy i chwilę mi to zajęło i o ironio tam również był obrońca skryptów Kraftowy, któremu chcieli dać w sumie 1000 zł za skrypt.
http://www.mpcforum.pl/topic/1519428-co-się-lepiej-sprawdza-na-serwerze-pluginy-czy-skrypty/?p=12864990

Opublikowano

@UP Każdy nabiera doświadczenia ;)
Robiłem takie rzeczy w skript, że większość by nie uwierzyła, że to nie jest plugin na serwerze.

@1361622928-U485574.pngRedex2mc potwierdzam masz racje.

409.jpg?7190

|---> Z o s t a n ę <---|

 

Zostanę technikiem na twój serwer minecraft, zrobie cały serwer według twojego pomysłu!
http://www.mpcforum.pl/topic/1486254-zostanę-technikiem-stworzę-serwer-twojego-pomysłu/#entry12589185

Opublikowano

@1361622928-U485574.pngRedex2mc

 

boże... nie pisz jak nie rozumiesz

skrypt jest "tłumaczony" na java, kompilowany i uruchamiany.

nie, skrypt jest interpretowany, co oznacza że jest parsowany do tzw. abstract syntax tree, co jest tylko zestawem kolejnych operacji do wykonania, a potem są one wykonywane i tyle, np masz

random number between 5 and 10

i to całe to jest pewną akcją, przyjmującą 2 argumenty, kod do przetwarzania tego istnieje w kodzie skripta: https://github.com/Njol/Skript/blob/master/src/main/java/ch/njol/skript/expressions/ExprRandomNumber.java

I ten znacznie mniej wydajny kod, jest wtedy za każdym razem wykonywany, gdzie tworząc w javie, nasz kod tutaj ograniczy się do 1 prostej metody, bezpośredniego losowania liczy, tutaj mamy cały kod z:

	protected Number[] get(final Event e) {
		final Number l = lower.getSingle(e);
		final Number u = upper.getSingle(e);
		if (u == null || l == null)
			return null;
		final double ll = Math.min(l.doubleValue(), u.doubleValue());
		final double uu = Math.max(l.doubleValue(), u.doubleValue());
		if (integer) {
			return new Long[] {Math2.ceil(ll) + Math2.mod(rand.nextLong(), Math2.floor(uu) - Math2.ceil(ll) + 1)};
		} else {
			return new Double[] {ll + rand.nextDouble() * (uu - ll)};
		}
	} 

przez co wydajność spada, ale dałoby się to zrobić lepiej, no ale autor zrobił to jak zrobił.

 

w normalnym pluginie caly ten kod byłby tylko:

ll + rand.nextDouble() * (uu - ll)

1438614356923701010629.png

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...