Skocz do zawartości

PanMaruda

Użytkownik
  • Ilość zawartości

    1471
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    40

Treść opublikowana przez PanMaruda

  1. PanMaruda

    Odrodzenie

    on respawn: teleport player to (bed location of player) ? spawn
  2. command: executor is not console: command is not "komenda" or "komenda 1" or "komenda 2" or (...) or "komenda N": cancel event send "nie możesz tej komendy"
  3. Nie widzę innego rozwiązania jak pobranie inventory gracza, stackowanie wszystkich itemków ręcznie i sprawdzanie czy łącznie zajmują mniej slotów niż gracz ma w ekwipunku: function checkFullEq(p: player) :: boolean: if size of all items in the inventory of {_p} < 41: return false loop all items in the inventory of {_p}: if {_liczenie::%type of loop-item%} is not set: set {_liczenie::%type of loop-item%} to 0 add item amount of loop-item to {_liczenie::%type of loop-item%} set {_liczenieMax::%type of loop-item%} to max stack size of loop-item set {_zajetesloty} to 0 loop {_liczenie::*}: add (rounded up (loop-value / {_liczenieMax::%loop-index%})) to {_zajetesloty} if {_zajetesloty} < 41: return false #niepełne return true #pełne rightclick: checkFullEq(player): send "twój ekwipunek jest pełny" else: send "niepełny"
  4. A vault masz?
  5. PanMaruda

    [RLogin] Remember

    No dobra wszystko super, tylko po co? Authme ma taką opcję wbudowaną - wystarczy czytać konfigurację.
  6. PanMaruda

    Jazda wagonikiem

    Oczywiście, pomóc zawsze mogę, ale jeżeli chcesz gotowy skrypt to byłoby miło gdybyś coś zaoferował od siebie. Preferuję pieniążki. A teraz do tematu - już tłumaczę: Potrzebujesz zacząć od momentu, w którym gracz wsiada do wagonika. W tym właśnie wydarzeniu rozpoczynasz pętlę, która trwa do czasu jego opuszczenia. Następnie dla tej pętli ustalamy opóźnienie czasu (im mniejsze - tym płynniej będzie się sterowało, dlatego proponuję 50 milisekund). I w tym momencie stworzenie mechaniki sterowania zależy od ciebie - kliknięcie prawym - pojazd jedzie, lewym - staje. Myślę że to jest na tyle banalne że szkoda marnować na to czasu - w końcu to tylko dwa najprostsze wydarzenia rightclick, leftclick i jedna zmienna + zmienna na tą permisję (prawo jazdy). A teraz przejdźmy do tego najważniejszego - gracz zadeklarował prawym że chce jechać, ma prawo jazdy itd. - jak wprawić wagonik w ruch? - przychodzi nam stworzyć (tak jak już napisałem wyżej) wektor (czyli kierunek). Chcąc żeby pojazd jechał tam, gdzie patrzy się gracz - najlepiej będzie skorzystać z kątów yaw oraz pitch gracza (poziomego oraz pionowego), które to właśnie opisują ten kierunek. Przechodzimy do dokumentacji Skripta, znajdujemy odpowiednie wyrażenie, które zwróci nam wektor z tych dwóch kątów i voilà - mamy nasz wektor. Tylko jeżeli gracz spojrzy się w górę to wagonik zacznie latać - a tego nie chcemy. Trzeba zatem zainteresować się kątem pionowym (pitch). Jego wartości wahają się od 0 do 90 w górę oraz od 0 do -90 w dół (albo odwrotnie, nie pamiętam). Jeżeli nie chcemy żeby samochód latał musimy tą wartość ustawić ręcznie na 0 (lub niższą). W takim przypadku (ustawiania go ręcznie) kąt pionowy można interpretować jako 'grawitację' - jeżeli jest on wyższy od zera - pojazd poleci - jeżeli mniejszy - będzie dociskany do ziemi. Zatem do sedna - proponuję zrobić wektor z kątów yaw (pobranego od gracza) oraz pitch (wpisanego ręcznie z przedziału od -15 do 0) No i teraz mamy nasz kierunek poziomy (tj. pojazd nie odleci w górę) jednak nie ma on żadnej długości (a ta z kolei jest potrzebna żeby pojazd się przesunął) - ustawiamy ją bardzo prosto bo jest na nią gotowe wyrażenie w dokumentacji Skripta. I teraz tak - zależnie od jej wielkości - pojazd będzie poruszał się szybciej lub wolniej, ale pod uwagę musimy wziąć również opóźnienie w pętli - im jest mniejsze - tym mniejsza powinna być długość wektora (prędkość pojazdu). Nie mam pojęcia jak ta długość będzie się sprawdzać w praktyce, ale dla opóźnienia 50 ms ja ustawiłbym ją na 0.05 lub 0.1 - co powinno nam dać prędkość jakieś 1-2 kratki / s. I w zasadzie to tyle z tej trudniejszej części (mimo że wcale taka nie jest bo to powyżej jest tylko opisowym wyjaśnieniem mechaniki, która tam powinna być - całość (tj. ustawianie wektora) nie powinna zając więcej jak 3 linijki). Teraz kolej na faktyczne wprawienie w ruch pojazdu - do tego wykorzystujemy kod z mojej poprzedniej wiadomości - czyli 'popychamy' wagonik gracza o stworzony wektor. (I to wszystko ma się odbywać w pętli). Amen.
  7. masz pewnie dwa światy, w których czas płynie inaczej, więc i kod aktywuje się dwa razy #tutaj wpisz nazwę swojego świata v at 19:00 in "nazwa_swiata": set {vote::status}, {vote::dzien} and {vote::noc} to 0 broadcast "&8[&aEast&bCore&8] &aNadchodzi noc! Jeśli chcesz dzień, zagłosuj komendą /dzien a żeby dalej była noc to /noc!" wait 15 seconds if ({vote::dzien} / {vote::noc}) >= 1: set time to 8:00 broadcast "&8[&aEast&bCore&8] &bWygrał Dzień!" else: broadcast "&8[&aEast&bCore&8] &bWygrała Noc!." delete {vote::*} command /dzien: trigger: if {vote::status} is set: if {vote::gracz::%player%} is not set: set {vote::gracz::%player%} to true add 1 to {vote::dzien} send "&8[&aEast&bCore&8] &aZagłosowałes na Dzień." stop send "&8[&aEast&bCore&8] &cJuż zagłosowałeś!" stop send "&8[&aEast&bCore&8] &cObecnie nie ma głosowania!" command /noc: trigger: if {vote::status} is set: if {vote::gracz::%player%} is not set: set {vote::gracz::%player%} to true add 1 to {vote::noc} send "&8[&aEast&bCore&8] &aZagłosowałeś na Noc" stop send "&8[&aEast&bCore&8] &cJuż zagłosowałeś!" stop send "&8[&aEast&bCore&8] &cObecnie nie ma głosowania!"
  8. PanMaruda

    Losowy kod

  9. Zainstaluj skrypt, który ci wysłał w linku, a następnym razem podaj błąd, który wyświetla.
  10. function sendCenterText(p: players, t: text): set {_spaces} to "" loop (rounded down ((80 - (1.4 * (length of {_t})))/2)) times: set {_spaces} to "%{_spaces}% " send "%{_spaces}%%{_t}%" to {_p::*} on death: if attacker is a player: if victim is wither: sendCenterText((all players), ("&c%attacker% &6zabil withera!"))
  11. send "%{_var::*}% #coś, coś, coś and coś send {_var::*} #coś #coś #coś #coś #ewentualnie set {_} to join {_var::*} using nl send {_} #coś #coś #coś #coś
  12. PanMaruda

    Jazda wagonikiem

    push (vehicle of %entity%) %(vector|direction with speed %number%)% wstawiasz sobie to w pętlę i działa.
  13. at 19:00: set {vote::status}, {vote::dzien} and {vote::noc} to 0 broadcast "&8[&aEast&bCore&8] &aNadchodzi noc! Jeśli chcesz dzień, zagłosuj komendą /dzien a żeby dalej była noc to /noc!" wait 15 seconds if ({vote::dzien} / {vote::noc}) >= 1: set time to 8:00 broadcast "&8[&aEast&bCore&8] &bWygrał Dzień!" else: broadcast "&8[&aEast&bCore&8] &bWygrała Noc!." delete {vote::*} command /dzien: trigger: if {vote::status} is set: if {vote::gracz::%player%} is not set: set {vote::gracz::%player%} to true add 1 to {vote::dzien} send "&8[&aEast&bCore&8] &aZagłosowałes na Dzień." stop send "&8[&aEast&bCore&8] &cJuż zagłosowałeś!" stop send "&8[&aEast&bCore&8] &cObecnie nie ma głosowania!" command /noc: trigger: if {vote::status} is set: if {vote::gracz::%player%} is not set: set {vote::gracz::%player%} to true add 1 to {vote::noc} send "&8[&aEast&bCore&8] &aZagłosowałeś na Noc" stop send "&8[&aEast&bCore&8] &cJuż zagłosowałeś!" stop send "&8[&aEast&bCore&8] &cObecnie nie ma głosowania!"
  14. Odsyłam do mojego tematu:
  15. on join: while player is online: set tab list name of player to "%balance of player% %displayname of player%" wait tick Gracz offline to gracz offline - nie ma go na serwerze, to nie ma go i na tabie.
  16. on break: location of event-block is %location%: #do
  17. Czyli stworzyłeś skrypt na kity, a nie na zarządzanie serwerem Pozwolę sobie odnieść się do skryptu w imieniu całej społeczności, zacznę od góry: #!Tego nie zmieniamy!# Version: V1.0 A dlaczego tego nie zmieniamy? A po co? A na co komu to potrzebne? Gdzieś z tego korzystasz? Bo nie widziałem. set {_i} to 0 loop 10 times: format slot {_i} of player with gray glass pane named " " to be unstealable add 1 to {_i} Tak na przyszłość: z pętli można pobrać numer zapętlenia które wykonuje. loop 10 times: format slot (loop-number - 1) of player with gray glass pane named " " to be unstealable I tym samym kod nam się zepsuł. Nie ma sensu sprawdzać dalej, skoro w skrypcie użyłeś format slota ze SkQuery. Wszędzie jest pisane że to nie działa, jest zbugowane, a ty i tak to wpakowałeś. Amen.
  18. PanMaruda

    Player

    On ci proponuje najbardziej logiczne wyjście z sytuacji - od siebie dodam, że skriptem takie coś jest raczej niewykonalne, więc nie liczyłbym na twoim miejscu na jakikolwiek inny odzew w tej sprawie.
  19. command /sellxp [<text>]: trigger: set {_money} to player's experience*2 set player's experience to 0 add {_money} to player's balance send "&6Sprzedałeś %{_xp}% dla $%{_money}/2%" stop
  20. mein gott, człowieku.... set {_liczba} to 15 #jakaś liczba, którą będziesz powiększał o procent set {_mnożnik} to 1.2 #to jest twój procent (20%) send "Liczba podstawowa: %{_liczba}%" send "Mnożnik: %({_mnożnik} * 100)%%%" send "" set {_liczbaPowiększona} to {_liczba} * {_mnożnik} send "Liczba powiększona: %{_liczbaPowiększona}%" + to co ci wyżej zaznaczyłem nie działa w ten sposób. Jeżeli już musisz robić takim sposobem to najpierw wstawiasz zmienną w tekst, a potem ten tekst parsujesz na liczbę: 1.{dodatkowyexpwprocentach} #ŹLE set {_tekst} to "1.%{dodatkowyexpwprocentach}%" #teraz zmienna {_tekst} będzie zawierała coś takiego: "1.20" set {_liczba} to {_tekst} parsed as number #teraz {_liczba} zawiera liczbę 1.20, i dopiero teraz możesz na niej wykonywać obliczenia
  21. A co to niby ma być? 1.{dodatkowyexpwprocentach}
  22. A za te swoje wymagania coś oferujesz? Może jakieś pieniążki?
  23. co
  24. send "%balance of player%" to player
×
×
  • Dodaj nową pozycję...