Ta odpowiedź cieszy się zainteresowaniem. Mr. Edgarsz 164 Opublikowano 23 grudnia 2014 Ta odpowiedź cieszy się zainteresowaniem. Udostępnij Opublikowano 23 grudnia 2014 Witam! W tym poradniku przybliżę wam trochę działanie funkcji z popularnego dodatku WildSkript. Tak więc zaczynajmy! [dupka2]Zastosowania funkcji[/dupka2] Zastosowań funkcji jest bardzo dużo, tutaj wymienię tylko kilka. ~ Łatwiejsza edycja kodu~ Połączenie z lambdami i ekwipunkiem z SkQuery~ Skrócenie kodu[dupka2]Jak to wygląda w dokumentacji[/dupka2] Deklarowanie funkcjiMethod "<nazwa>" {<arg 1>, <arg 2> and <arg 3>}:<nazwa> - Tu wstawiamy nazwę funkcji do której będziemy się odwoływać w dalszej części kodu<arg 1/2/3> - Argument funkcji. W tym miejscu nie jest wymagane podawanie czegokolwiek, jednakże dla orientacji możemy tutaj wpisać polskie nazwy odpowiadające zmiennym Wywoływanie funkcjiFunction "<nazwa>" {<arg 1>, <arg 2> and <arg 3>};<nazwa> - Tu wstawiamy nazwę funkcji którą wcześniej zadeklarowaliśmy.<arg 1/2/3> - Argument funkcji, tutaj wstawiamy wartości które mają być używane przy wywoływaniu funkcji Pobieranie argumentów (Używamy w deklarowaniu funkcji)Set {<zmienna>} to arg{<numer>};<zmienna> - zmienna w której ma być zapisywana wartość argumentu<numer> - numer argumentu [dupka2]Przykład w kodzie[/dupka2] Chcemy zrobić komendę która będzie otwierała nam ekwipunek z możliwością wymiany cobbla na dirt w różnych ilościach, robimy tak: Deklarujemy Funkcje:Method "wymiana" {ilosc and gracz}:Zapisujemy argumenty do zmiennych:set {_d} to arg{1};set {_g} to arg{2};Ustawiamy ilość cobblestone'a w oparciu o ilość dirta którego chcemy otrzymać:set {_c} to {_d}*64Sprawdzamy czy gracz posiada odpowiednią ilość przedmiotów po czym usuwamy mu bruk z ekwipunku i dajemy dirta. Jeżeli gracz nie ma odpowiedniej ilości bruku wysyłamy wiadomość: if {_g} has {_c} cobblestone: remove {_c} cobblestone from {_g}'s inventory give {_d} dirt to {_g} send "&3Pomyślnie wymieniłeś &6%{_c}% cobbla &3na &6%{_d}% dirtu&3." to {_g} else: send "&cNie masz wystarczającej ilość cobbla!" to {_g}Tworzymy komendę która otworzy nam menu wymiany: command /Wymiana: trigger: open chest with 6 rows to player wait 2 ticks format slot 0 of player to 1 dirt named "&3 64 Cobblestone &6-> &31 Dirt" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {1 and player}] format slot 1 of player to 5 dirt named "&3 320 Cobblestone &6-> &35 Dirta" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {5 and player}]Cały kod:Method "wymiana" {ilosc and gracz}: set {_d} to arg{1}; set {_g} to arg{2}; set {_c} to {_d}*64 if {_g} has {_c} cobblestone: remove {_c} cobblestone from {_g}'s inventory give {_d} dirt to {_g} send "&3Pomyślnie wymieniłeś &6%{_c}% cobbla &3na &6%{_d}% dirtu&3." to {_g} else: send "&cNie masz wystarczającej ilość cobbla!" to {_g}command /Wymiana: trigger: open chest with 6 rows to player wait 2 ticks format slot 0 of player to 1 dirt named "&3 64 Cobblestone &6-> &31 Dirt" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {1 and player}] format slot 1 of player to 5 dirt named "&3 320 Cobblestone &6-> &35 Dirta" with lore "||||&6>> &3Kliknij aby wymienić &6<<" to run [function "wymiana" {5 and player}][dupka2]Słowem zakończenia[/dupka2] To tyle na dzisiaj! Jak zrozumiem jak działa result of function i return zaktualizuje poradnik.Mam nadzieje że wam się spodoba.Pozdrawiam, :edgarsz: Matstos, theneuetimes, kunik2002 i 17 innych 20 Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/ Udostępnij na innych stronach Więcej opcji udostępniania...
Fajerowskyy. 56 Opublikowano 23 grudnia 2014 Udostępnij Opublikowano 23 grudnia 2014 Przyda się. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-42629 Udostępnij na innych stronach Więcej opcji udostępniania...
boleknowak 961 Opublikowano 23 grudnia 2014 Udostępnij Opublikowano 23 grudnia 2014 Nie kumam kompletnie xd Ale fajne, przyda się.... :D Łap lajka. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-42630 Udostępnij na innych stronach Więcej opcji udostępniania...
Norbi 1337 Opublikowano 23 grudnia 2014 Udostępnij Opublikowano 23 grudnia 2014 W deklarowaniu wystarczy: Method "<nazwa>" {}:W wyłowywaniu funkcji można używać i method i function. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-42631 Udostępnij na innych stronach Więcej opcji udostępniania...
Mr. Edgarsz 164 Opublikowano 23 grudnia 2014 Autor Udostępnij Opublikowano 23 grudnia 2014 @Up toż napisałem że nie jest wymagane... Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-42636 Udostępnij na innych stronach Więcej opcji udostępniania...
Ezx 145 Opublikowano 26 grudnia 2014 Udostępnij Opublikowano 26 grudnia 2014 super! Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-43161 Udostępnij na innych stronach Więcej opcji udostępniania...
herhor67 916 Opublikowano 3 stycznia 2015 Udostępnij Opublikowano 3 stycznia 2015 Fajne, przyda się, szczególnie menu. Łap lajka :D Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-45212 Udostępnij na innych stronach Więcej opcji udostępniania...
Matstos 2 Opublikowano 4 stycznia 2015 Udostępnij Opublikowano 4 stycznia 2015 (edytowane) Naprawde wielki + za ten poradnik. Przyda sie chyba wszystkim Edytowane 4 stycznia 2015 przez Matstos Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-45240 Udostępnij na innych stronach Więcej opcji udostępniania...
Norbi 1337 Opublikowano 21 lutego 2015 Udostępnij Opublikowano 21 lutego 2015 @xNawi ten średnik na końcu podowduje błąd. Usuń go i powinno działać. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-53135 Udostępnij na innych stronach Więcej opcji udostępniania...
Mr. Edgarsz 164 Opublikowano 21 lutego 2015 Autor Udostępnij Opublikowano 21 lutego 2015 @Norbi mylisz się.@Nawo Błąd jest spowodowany dziwnym przetwarzaniem loopów oraz zmiennych w zmiennych. Jak dotąd nie dałem rady się z nim uporać dlatego takie funkcje dalej wywołuje komendą. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-53177 Udostępnij na innych stronach Więcej opcji udostępniania...
piesio98 13 Opublikowano 3 maja 2015 Udostępnij Opublikowano 3 maja 2015 (edytowane) Nie działa... ;ppppppwywala błąd przy kliknięciu Could not pass event InventoryClickEvent to SkQuery v3.22.1org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-1649] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1649] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [spigot.jar:git-Spigot-1649] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1477) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:15) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.PacketPlayInWindowClick.handle(PacketPlayInWindowClick.java:65) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot.jar:git-Spigot-1649] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1649]Caused by: ch.njol.skript.SkriptAPIException: UnparsedLiterals must be converted before use at ch.njol.skript.lang.UnparsedLiteral.invalidAccessException(UnparsedLiteral.java:275) ~[?:?] at ch.njol.skript.lang.UnparsedLiteral.getAll(UnparsedLiteral.java:285) ~[?:?] at ch.njol.skript.lang.ExpressionList.getAll(ExpressionList.java:117) ~[?:?] at net.dzikoysk.wildskript.collections.functions.elements.EffFunction.execute(EffFunction.java:17) ~[?:?] at ch.njol.skript.lang.Effect.run(Effect.java:50) ~[?:?] at com.w00tmast3r.skquery.skript.LambdaEffect.walk(LambdaEffect.java:35) ~[?:?] at com.w00tmast3r.skquery.util.custom.menus.v2_.SlotRule.run(SlotRule.java:30) ~[?:?] at com.w00tmast3r.skquery.util.custom.menus.v2_.FormattedSlotManager.onClick(FormattedSlotManager.java:66) ~[?:?] at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25] at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[spigot.jar:git-Spigot-1649] ... 13 more + błędy w kodzie trzeba było dodać "of" np.give {_d} of dirt to {_g}Method "wymiana" {ilosc and gracz}: set {_d} to arg{1}; set {_g} to arg{2}; set {_c} to {_d}*64 if {_g} has {_c} of cobblestone: remove {_c} of cobblestone from {_g}'s inventory give {_d} of dirt to {_g} send "&3Pomy�lnie wymieni�e� &6%{_c}% cobbla &3na &6%{_d}% dirtu&3." to {_g} else: send "&cNie masz wystarczaj�cej ilo�� cobbla!" to {_g} command /Wymiana: trigger: open chest with 6 rows to player wait 2 ticks format slot 0 of player with 1 of dirt named "&3 64 Cobblestone &6-> &31 Dirt" with lore "||||&6>> &3Kliknij aby wymieni� &6<<" to run [function "wymiana" {1 and player};] format slot 1 of player with 5 of dirt named "&3 320 Cobblestone &6-> &35 Dirta" with lore "||||&6>> &3Kliknij aby wymieni� &6<<" to run [function "wymiana" {5 and player};] Edytowane 3 maja 2015 przez piesio98 Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-60003 Udostępnij na innych stronach Więcej opcji udostępniania...
Mr. Edgarsz 164 Opublikowano 3 maja 2015 Autor Udostępnij Opublikowano 3 maja 2015 1. Używasz spigota. W tym tkwi problem. WS nie współpracuje ze spigotem. 2. Kod był testowany. U mnie działał. Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-60035 Udostępnij na innych stronach Więcej opcji udostępniania...
Messie991 5 Opublikowano 10 czerwca 2016 Udostępnij Opublikowano 10 czerwca 2016 Ciekawe >>> Odnośnik do komentarza https://skript.pl/temat/5177-wildskript-funkcje-oszcz%C4%99dzanie-miejsca-i-%C5%82atwiejsza-edycja-kodu/#findComment-85546 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi