Ta odpowiedź cieszy się zainteresowaniem. piratjsk 700 Opublikowano 29 lipca 2014 Ta odpowiedź cieszy się zainteresowaniem. Udostępnij Opublikowano 29 lipca 2014 O co chodzi?SSCC "Standard Skript Code Conventions" jest zestawem reguł pisania skryptów stworzonym przez destroyer'a4017. Określa on styl kodowania, który zapewnia kompatybilność z innymi skryptami, łatwość utrzymania/modyfikowania kodu oraz sprawia, że skrypt jest prosty do odczytania.Nazwy plików Nazwy plików kończących się na ".sk" nie powinny zawierać następujących znaków: # ` $ % { } (spacji) Jeśli w nazwie chcesz zawrzeć wersję skryptu powinna ona znaleźć się na końcu, za nazwą skryptu: skrewards-v1.2.3.skNazwy zmiennychPoniższe zasady odnoszą się tylko do zmiennych globalnych, nie do lokalnych (zaczynających się od _). Nazwy zmiennych powinny być zapisane według konwencji camelCase, gdzie nie występują spacje oraz pierwsza litera każdego słowa (wyłączając pierwsze) zaczyna się z wielkiej litery. Zmienne tworzone przez skrypt powinny być definiowane w sposób {<nazwa skryptu>::<nazwa zmiennej>}, co ułatwia usuwanie danych danego skryptu albo aktualizowanie zmiennych z wcześniejszej wersji skryptu, na przykład: # Zamiast takiej zmiennej {current.reward}# Użyj następującego wzoru {skrewards::currentReward} Zmienne dynamiczne oraz listy powinny być stopniowane, co jest bardziej obiektowym podejściem i umożliwia zapętlanie danych. # Zamiast takich zmiennych {reward.level.modifier.1} {reward.level.modifier.2} {reward.level.modifier.3} {rewardstatus.%player%} {info.%player%.mined.diamonds} {info.%player%.mined.emeralds}# Użyj następujących wzorów {skrewards::rewardLevelModifier::1} {skrewards::rewardLevelModifier::2} {skrewards::rewardLevelModifier:: 3} {skrewards::rewardStatus::%player%} {skrewards::info::%player%::minedDiamonds} {skrewards::info::%player%::minedEmeralds}# Lub {skrewards::info::%player%::mined::diamonds} {skrewards::info::%player%::mined::emeralds} Jeśli piszesz API, powinieneś wpisać dane do zarezerwowanych nazw zmiennych {<nazwa skryptu>::api::<output ID>}. Jeśli używasz skQuery, możesz zapisywać dane do tych zmiennych gdy podprogram/funkcja jest wykonywany/a. W zwykłym Skript powinieneś zdeklarować komendy możliwe do użycia tylko z konsoli, które wpisują dane do tych zmiennych. Schemat ten pozwala twórcom skryptów tworząc własny skrypt pozyskiwać informacje z innych. Jeśli Twój skrypt jest BIBLIOTEKĄ, której jedynym celem jest udostępnienie funkcji, należy wtedy pominąć fragment ::api i używać {<nazwa skryptu>::<output ID>}. Zmienne API powinny być usunięte zawsze gdy serwer jest wyłączany.Porządkowanie kodu Stworzony kod musi być uporządkowany w określony sposób. Nie powinieneś wpisywać zdarzeń i komend w losowej kolejności; muszą być czytelnie oddzielone. Każdy z elementów może być pominięty, o ile są one w odpowiedniej kolejności. script options (jeśli używasz skQuery) aliasy [aliases:] zmienne [variables:] opcje [options:] podprogramy/funkcje (jeśli używasz skQuery) nowe komendy [command /komenda:] on script load: on script unload: okresowe zdarzenia (np. every 10 seconds, at 10:00) inne zdarzenia Zdarzenia i Warunki Zdarzenia zawsze powinny zaczynać się od słówka "on", mimo, że będą działać bez niego. Kiedy tylko to możliwe, powinieneś unikać używania selektorów w linii definiującej zdarzenie, np.: on right click with porkchop: on left click on tnt: on damage of cow: Należy uogólnić takie zdarzenia i skorzystać z warunków: on right click: if tool of player is porkchop:# dalszy kod on left click: if clicked block is tnt:# dalszy kod on damage: if victim is a cow:# dalszy kod Stosując warunki, NIGDY nie powtórzysz tego samego zdarzenia kilka razy w jednym skrypcie. Warunki powinny ZAWSZE zaczynać się od słówka "if" i kończyć dwukropkiem. NIGDY nie używaj warunków bez wprowadzenia dalszego kodu do ich wnętrza. To pozwoli twórcom skryptów w łatwy sposób dodać kod przed i po warunku albo dodać "else:". # Zamiast on damage: if victim is a player: {skrewards::info::%victim%::isInvincible} is true cancel event set {skrewards::info::%victim%::isInvincible} to false# Użyj takich warunków on damage: if victim is a player: if {skrewards::info::%victim%::isInvincible} is true: cancel event set {skrewards::info::%victim%::isInvincible} to false Specyfikacja LambdyLambdy są nową funkcją skQuery i mogą być używane we wszystkich wersjach powyżej 1.17.0. Pozwalają sporą ilość kodu skompresować do kilku linii. Lambdy, tak długo jak długo będą używane rozsądnie, będą spełniać wymagania SSCC. Lambdy mogą być brane pod uwagę jeśli: [*]Użyte są zamiast funkcji do wykonania POJEDYNCZEGO zadania [*]Użyte są do zaciemnienia kodu przez stworzenie bardzo skompresowanego kodu [*]Lepiej opisują ciąg zadań - - - Jeśli stosujesz się do tych zasad, umieść w publikacji swojego skryptu plakietkę: Kod z linkiem do oryginalnego tematu: [url=http://dev.bukkit.org/bukkit-plugins/skript/forum/tutorials/69108/][img=https://i.imgur.com/BZ8lAno.png][/url] Kod z linkiem do tego tematu: [url=http://skript.pl/index.php/topic/1877-][img=https://i.imgur.com/BZ8lAno.png][/url] Źródło: http://dev.bukkit.org/bukkit-plugins/skript/forum/tutorials/69108 Slupik98, creepek, wiktorm12 i 24 innych 23 4 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/ Udostępnij na innych stronach Więcej opcji udostępniania...
ToNy 548 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Zawsze tak robię, lecz nie wiedziałem że są jakieś zasady. Zwyczajnie jakoś to wiedziałem.Myślę że można to podpiąć bo jest to dość ważne. Dophie 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15827 Udostępnij na innych stronach Więcej opcji udostępniania...
PoweredDragon 1016 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 No dość ciekawe i nawet przydatne :D Warte tego przypięcia F: Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15837 Udostępnij na innych stronach Więcej opcji udostępniania...
Dinekkk 134 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Ciekawe, chyba czas wprowadzić pewna zmianę w moich skryptach ;) Dophie 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15844 Udostępnij na innych stronach Więcej opcji udostępniania...
adek1990 31 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Wsumie zawsze tego uzywam ale ze sa jakies zasady to nie wiedzialem i jakos naprawde jest czytelne Jezeli {abc.abc} jest prawda: A nie {Abc.abc} jest prawda Ale tych od nazwy nie stosuje bo jakos nie potrzeba:) Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15856 Udostępnij na innych stronach Więcej opcji udostępniania...
Selo_Y 2 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Przydatne ;) Leci + Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15865 Udostępnij na innych stronach Więcej opcji udostępniania...
Xayanix 51 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Jaka rożnica miedzy wielkoscia liter itd. skoro pisze skrypty tylko dla siebie? Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15885 Udostępnij na innych stronach Więcej opcji udostępniania...
PrzypalonyOmlet 35 Opublikowano 29 lipca 2014 Udostępnij Opublikowano 29 lipca 2014 Moim zdaniem takie zasady to nawet fajny pomysł, kod skryptów zyska na przejrzystości i łatwiej się będzie odnaleźć w dziełach innych osób. @upJak piszesz skrypty tylko dla siebie to po co ci plakietka? :v Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-15892 Udostępnij na innych stronach Więcej opcji udostępniania...
LeviBoyPL 161 Opublikowano 30 lipca 2014 Udostępnij Opublikowano 30 lipca 2014 @upOnnie chce plakietki, tylko pyta sie jaka jest roznica miedzy {abc.abc}, a {Abc.Abc}@2upJezeli piszesz skrypty tylko dla siebie i ich nie publikujesz/usuwasz/updatujesz to nic :] Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-16025 Udostępnij na innych stronach Więcej opcji udostępniania...
PoweredDragon 1016 Opublikowano 30 lipca 2014 Udostępnij Opublikowano 30 lipca 2014 @UP{Abc.Abc}właśnie czegoś takiego się nie pisze. Wielkiej litery używamy w słowach, kiedy je oddzielamy. Pierwsze słowo właśnie z małej literki: abcMasloabcMlekoabcDlaMnieToWiecPoCoWielkieLitery Chodzi o to, że w zasadzie ten "zbiór zasad" to tak na prawdę 'dodatek', nic obowiązkowego, po prostu ułatwia to wszystkim i ew. możesz dokleić plakietkę ._. Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-16036 Udostępnij na innych stronach Więcej opcji udostępniania...
LeviBoyPL 161 Opublikowano 30 lipca 2014 Udostępnij Opublikowano 30 lipca 2014 O tym mowa. Ktos sie zapytal jaka jest pomiedzy tymi stylami roznica, a to w sumie pisze w pierwszym poscie :]Wiec jesli nie publikuje skriptow to nie jest to istotne. Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-16151 Udostępnij na innych stronach Więcej opcji udostępniania...
Hak zUszami 0 Opublikowano 2 sierpnia 2014 Udostępnij Opublikowano 2 sierpnia 2014 Dobry poradnk Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-16802 Udostępnij na innych stronach Więcej opcji udostępniania...
Slupik98 173 Opublikowano 5 sierpnia 2014 Udostępnij Opublikowano 5 sierpnia 2014 Jupi! Teraz mam do przepisania 5k linijek kodu xD Hydorax i adek1990 2 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-17448 Udostępnij na innych stronach Więcej opcji udostępniania...
ApisEK12 0 Opublikowano 14 sierpnia 2014 Udostępnij Opublikowano 14 sierpnia 2014 A co robi * Np {Nazwaskryptu::blabla::*} Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-19606 Udostępnij na innych stronach Więcej opcji udostępniania...
adek1990 31 Opublikowano 15 sierpnia 2014 Udostępnij Opublikowano 15 sierpnia 2014 A co robi * Np {Nazwaskryptu::blabla: :*}lepszą czytelność oraz ułatwienie usuwania:) delete {NazwaSkryptu::*} i wtedy usuwa all zmienne od tego skriptu czyli i szybkość usuwania a nie po całym kodzie gdy ma powiedzmy 700+ linijek to jest trochę nie optymalne i dużo czasu można stracić:) Slupik98 i ApisEK12 2 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-19760 Udostępnij na innych stronach Więcej opcji udostępniania...
sebafudi 122 Opublikowano 16 sierpnia 2014 Udostępnij Opublikowano 16 sierpnia 2014 lepszą czytelność oraz ułatwienie usuwania:) delete {NazwaSkryptu::*} i wtedy usuwa all zmienne od tego skriptu czyli i szybkość usuwania a nie po całym kodzie gdy ma powiedzmy 700+ linijek to jest trochę nie optymalne i dużo czasu można stracić:)Nieprawda... ::* oznacza listę zmiennych. Można do niej coś dodawać. Add arg 1 to {zmienna::*} A potem też odczytać, a ona pokaże wszystko to co było do niej dodane po przecinku. 《☆》Wysłane z SGS4 przy użyciu tapatalk. _Of3k 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/1877-standard-skript-code-conventions-r3/#findComment-19829 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ą.