Warpedex 3 Opublikowano 19 lutego 2021 Udostępnij Opublikowano 19 lutego 2021 AdisSaveeq Witam tu znowu ja, w sumie to drugi raz, bo to mój drugi skrypt Zrobiłem skrypt na 2 różne ekwipunki, bo sam takiego potrzebowałem, a jako, że może się komuś też to przydać to postanowiłem go opublikować. Działa jak działa, powiedział bym, że jest w wersji "dev" ale no, przynajmniej jest, proszę o uwagi i propozycje w komentarzach. Jak działa skrypt? Po wpisaniu komendy /eq (i tu mamy do wyboru 1 i 2) zapisuje nasz obecny ekwipunek jako "ten drugi" i przenosi nas na "drugi" ekwipunek. Dodałem jeszcze komende /saveeq (Znowu do wyboru 1 i 2), która zapisuje nasz ekwipunek. W tej wersji są tylko 2 ekwipunki, oczywiście można dodać więcej samemu bo skrypt nie jest jakoś skomplikowany. No i to tyle. Wersja 1.0 Kod: https://code.skript.pl/7dHBNBDb Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/ Udostępnij na innych stronach Więcej opcji udostępniania...
CoFFeIN04 696 Opublikowano 19 lutego 2021 Udostępnij Opublikowano 19 lutego 2021 można to było zrobić o wiele łatwiej, dodatkowo żeby zapisywało dowolną ilość eq Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/#findComment-289432 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 19 lutego 2021 Udostępnij Opublikowano 19 lutego 2021 17 minut temu, CoFFeIN04 napisał: można to było zrobić o wiele łatwiej, dodatkowo żeby zapisywało dowolną ilość eq Wartościowy komentarz. Najlepiej powiedzieć, że można było coś prościej zrobić, ale już nie napiszesz jak. Co do zapisywania nieskończonej ilości ekwipunków - jakbyś chciał to zrobić? Przecież musisz sobie w momencie zapisu wczytać inny ekwipunek, więc skrypt jest dobrze napisany i na miejscu autora nie zmieniał bym niczego. Dwa ekwipunki są optymalną ilością, poza tym zapis dowolnej liczby ekwipunków będzie skutkował zapisem dużej ilości zmiennych (każdy gracz będzie mógł sobie zapisywać nawet jeden dirt w kilkuset ekwipunkach, mowa oczywiście o jakichś śmiesznych panach, którzy psują frajdę na serwerze). A jeżeli już miałaby być nieskończona ilość ekwipunków, należałoby podawać do komendy dwa argumenty w postaci dwóch liczb - pierwsza to zapisywany ekwipunek, natomiast druga to wczytywany ekwipunek. Oczywiście to generuje kolejne problemy, gdyż należałoby zrobić jakiś system chroniący przed nadpisaniem zapisanego ekwipunku. Co do samego uproszczenia kodu, właściwie nie ma tutaj czego upraszczać, gdyż i tak nie będzie to zbyt ładnie wyglądało. Ale jeżeli już chcemy się upierać... arg is "1" or "2" set {_n} to 2 if arg is "1" else 1 # To jest ternary operator loop 41 times: set {eq%{_n}%::%player%::%loop-number - 1%} to slot (loop-number - 1) of player's inventory set slot (loop-number - 1) of player's inventory to {eq%arg%::%player%::%loop-number - 1%} send "&cZapisano obecny ekwipunek jako %{_n}%, jesteś teraz na ekwipunku %arg%" to player Wykorzystujemy tutaj 'ternary operator' (czyli operator trójskładnikowy, który jest używany jako zastępca konstrukcji 'if' wraz z 'else'). Powyższy kod zastąpi nam całą zawartość pierwszej komendy. Tak samo możesz zrobić z drugą komendą. Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/#findComment-289454 Udostępnij na innych stronach Więcej opcji udostępniania...
Warpedex 3 Opublikowano 19 lutego 2021 Autor Udostępnij Opublikowano 19 lutego 2021 9 minut temu, Kormic napisał: Wartościowy komentarz. Najlepiej powiedzieć, że można było coś prościej zrobić, ale już nie napiszesz jak. Co do zapisywania nieskończonej ilości ekwipunków - jakbyś chciał to zrobić? Przecież musisz sobie w momencie zapisu wczytać inny ekwipunek, więc skrypt jest dobrze napisany i na miejscu autora nie zmieniał bym niczego. Dwa ekwipunki są optymalną ilością, poza tym zapis dowolnej liczby ekwipunków będzie skutkował zapisem dużej ilości zmiennych (każdy gracz będzie mógł sobie zapisywać nawet jeden dirt w kilkuset ekwipunkach, mowa oczywiście o jakichś śmiesznych panach, którzy psują frajdę na serwerze). A jeżeli już miałaby być nieskończona ilość ekwipunków, należałoby podawać do komendy dwa argumenty w postaci dwóch liczb - pierwsza to zapisywany ekwipunek, natomiast druga to wczytywany ekwipunek. Oczywiście to generuje kolejne problemy, gdyż należałoby zrobić jakiś system chroniący przed nadpisaniem zapisanego ekwipunku. Co do samego uproszczenia kodu, właściwie nie ma tutaj czego upraszczać, gdyż i tak nie będzie to zbyt ładnie wyglądało. Ale jeżeli już chcemy się upierać... arg is "1" or "2" set {_n} to 2 if arg is "1" else 1 # To jest ternary operator loop 41 times: set {eq%{_n}%::%player%::%loop-number - 1%} to slot (loop-number - 1) of player's inventory set slot (loop-number - 1) of player's inventory to {eq%arg%::%player%::%loop-number - 1%} send "&cZapisano obecny ekwipunek jako %{_n}%, jesteś teraz na ekwipunku %arg%" to player Wykorzystujemy tutaj 'ternary operator' (czyli operator trójskładnikowy, który jest używany jako zastępca konstrukcji 'if' wraz z 'else'). Powyższy kod zastąpi nam całą zawartość pierwszej komendy. Tak samo możesz zrobić z drugą komendą. Uprościłem ten kod tak jak napisałeś, zastanawiałem się też czy by po prostu nie zrobić po wpisaniu eq zamiany jednego eq na drugie, ale nie wiem czy warto Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/#findComment-289457 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 19 lutego 2021 Udostępnij Opublikowano 19 lutego 2021 (edytowane) 7 minut temu, Warpedex napisał: Uprościłem ten kod tak jak napisałeś, zastanawiałem się też czy by po prostu nie zrobić po wpisaniu eq zamiany jednego eq na drugie, ale nie wiem czy warto Możesz i tak, ale faktycznie gra nie jest warta świeczki, gdyż znowu musisz zapisywać graczowi zmienną, która będzie przechowywała informację o tym który ekwipunek gracz ma obecnie załadowany. Tak więc koniec konców kod jest tak samo długi (o ile nie dłuższy). Tak jak napisałem wcześniej, nie ma sensu dodawać i zmieniać w tym skrypcie innych rzeczy, gdyż trzeba będzie to łatać i właściwie zrobi się z tego błędne koło luk, możliwych nadużyć i bugów, które będzie trzeba łatać, a ty nie będziesz w tym widział końca. Zostaw tak jak jest i basta. Skrypt działa? Działa. Wygląda dobrze? Dobrze. Ode mnie to tyle. Edytowane 19 lutego 2021 przez Kormic Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/#findComment-289463 Udostępnij na innych stronach Więcej opcji udostępniania...
Warpedex 3 Opublikowano 19 lutego 2021 Autor Udostępnij Opublikowano 19 lutego 2021 5 minut temu, Kormic napisał: Możesz i tak, ale faktycznie gra nie jest warta świeczki, gdyż znowu musisz zapisywać graczowi zmienną, która będzie przechowywała informację o tym który ekwipunek gracz ma obecnie załadowany. Tak więc koniec konców kod jest tak samo długi (o ile nie dłuższy). Tak jak napisałem wcześniej, nie ma sensu dodawać i zmieniać w tym skrypcie innych rzeczy, gdyż trzeba będzie to łatać i właściwie zrobi się z tego błędne koło luk, możliwych nadużyć i bugów, które będzie trzeba łatać, a ty nie będziesz w tym widział końca. Zostaw tak jak jest i basta. Skrypt działa? Działa. Wygląda dobrze? Dobrze. Ode mnie to tyle. Na razie zostawie to tak jak jest, może kiedyś do tego wróce, ale jak na razie skrypt wystarczający jak na moje potrzeby, a chyba najważniejsze, żeby był jakoś pomocny Cytuj Odnośnik do komentarza https://skript.pl/temat/45959-adissaveq-skrypt-na-2-r%C3%B3%C5%BCne-ekwipunki/#findComment-289465 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ą.