Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 01/15/23 uwzględniając wszystkie działy

  1. Helios1993

    Tworzenie GUI w Skript - Poradnik

    GUI w Skript Czym jest GUI? Jest to skrzynia z wcześniej ustalonymi przedmiotami, z której nie możesz wyciągać przedmiotów, lecz możesz np. przenieść się na inny serwer klikając w odpowiedni przedmiot. Przykładowe GUI: Dlaczego nie powinieneś korzystać z SkQuery do tworzenia GUI? SkQuery posiada sporo błędów, jednym z nich jest ukryta możliwość wyciągania przedmiotów z GUI robionego za pomocą tego addonu. Jakie addony są potrzebne do zrobienia GUI? Nie potrzebujesz żadnych addonów, wystarczy sam Skript. Jak zrobić GUI w Skripcie? Jak w każdym skrypcie, na początku musi być jakiś event. W przykładzie użyję komendę: (Zapamiętaj, że przy dodawaniu komendy zawsze musi być 'trigger' w następnej linijce.) command /gui [<text>]: trigger: Gdy już masz komendę, musisz stworzyć swoje GUI. Robisz to w ten sposób: (3 to ilość linijek, "Nazwa" to nazwa twojego gui.) set {_gui} to chest inventory with 3 rows named "Nazwa" Teraz musisz ustawić slot. Pamiętaj, że są one liczone od 0. Żeby ustawić pierwszy slot w swoim GUI, zrób to: set slot 0 of {_gui} to diamond Twoje GUI jest już gotowe! Najwyższy czas je otworzyć dla gracza, który wykonał komendę: open {_gui} to player Cały kod powinien wyglądać tak: command /gui [<text>]: trigger: set {_gui} to chest inventory with 3 rows named "Nazwa" set slot 0 of {_gui} to diamond open {_gui} to player Aktualnie z twojego GUI można wyciągać przedmioty i nic się nie dzieje, jak to zmienić? Przyda ci się event 'on inventory click': on inventory click: Sprawdzaj czy naciśnięty slot nie jest ekwipunkiem gracza: event-inventory is not player's inventory Teraz musisz sprawdzić nazwę GUI: if name of event-inventory is "Nazwa": Jeśli chcesz zablokować wyciąganie przedmiotów, dodaj teraz 'cancel event': cancel event Sprawdź kliknięty slot: if clicked slot is 0: I wykonaj co chcesz wykonać: add diamond to player's inventory Cały kod powinien wyglądać tak: on inventory click: event-inventory is not player's inventory if name of event-inventory is "Nazwa": cancel event if clicked slot is 0: add diamond to player's inventory Teraz połącz te dwa kody i przeładuj skrypt. Gratulacje! Zrobiłeś swoje pierwsze GUI w Skripcie!
    1 punkt
  2. Saanjuk

    Compressor

    every 1 tick? to lagmaszyna a nie skrypt ... kolejna rzecz która się kupy nie trzyma: set {oak::%player's uuid%} to true if {oak::%player's uuid%} is false set {oak::%player's uuid%} to false if {oak::%player's uuid%} is true zapętlony kod po za tym jeżeli się nie myle to skript będzie widział te zenchantowane jako zwykle i bd je wymienial na jedno i to samo na czym gracze stracą 64 echantowane... nie rozumiem również tego: set {_n} to number of oak wood in loop-player's inventory set {_n} to {_n} / 64 set {_n} to floor({_n}) loop {_n} times: remove ({_n} * 64) of oak wood from loop-player's inventory give {_n} of oak wood of aqua affinity 1 named "&6&lCompressed Oak Wood" with all flags hidden to the loop-player send action bar "&5&lCOMPRESSOR &8> &fCompressed &b%({_n} * 64)% &fitems" to loop-player wait 1 tick jeżeli już obliczyłeś ile ma stacków to po co ten loop? powiedzmy że mam 5 stack drewna włączam compresor powtarzana jest 5 razy czynność: usun 5 stacków drewna dodaj 5 enchantowanego drewna ponieważ po 1 loopie nie mam juz stacków drewna nie usuwa mi ich za to dodaje kolejne 5 enchantowanego drewna w efekcie za 5 stacjów drewana mam 25 drewna enchantowanego... chyba nie o to chodzi prawda? spróbuj: command /compressor: permission: op trigger: open chest inventory with 6 rows named "&cCompressor" to player if player has permission "compressor.oak": set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&aUnlocked" stop set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&cLocked" on inventory click: if name of player's current inventory is "&cCompressor": cancel event if event-slot is 10: if player has permission "compressor.oak": if {oak::%player's uuid%} is false: set {oak::%player's uuid%} to true send "&aOak compressor has been enabled" else if {oak::%player's uuid%} is true: set {oak::%player's uuid%} to false send "&cOak compressor has been disabled" on join: set {oak::%player's uuid%} to false if {oak::%player's uuid%} is not set while player is online: if {oak::%loop-player's uuid%} is true: set {_n} to number of oak wood in loop-player's inventory set {_n} to {_n} / 64 set {_n} to floor({_n}) remove ({_n} * 64) of oak wood from loop-player's inventory give {_n} of oak wood of aqua affinity 1 named "&6&lCompressed Oak Wood" with all flags hidden to the loop-player send action bar "&5&lCOMPRESSOR &8> &fCompressed &b%({_n} * 64)% &fitems" to loop-player wait 1 second else: wait 1 second
    1 punkt
  3. PolsatGraniePL

    Licznik czasu.

    Póki jest okazja wprowadzę ci jedną podstawową zasadę. "Jeżeli w skrypcie widzisz execute command, zawsze sprawdzaj czy nie ma możliwości zamiany go na składnię ze skripta" - wtedy żaden plugin nie jest dodatkowo obciążany zasobami przez skripta, tylko sam skript, nie jak w tym przypadku plugin odpowiadający za /spawn. Tą komendę można z łatwością zamienić na składnię ze skripta: https://docs.skriptlang.org/expressions.html#ExprSpawn execute console command "/spawn %player%" => teleport player to spawn
    1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Quexsu
    Quexsu
    6 postów
    Grabsky
    Grabsky
    1 post
    Nicku
    Nicku
    1 post
    mervi_X
    mervi_X
    1 post
    Fendi
    Fendi
    1 post
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
  • Najwięcej tematów w tygodniu

    Quexsu
    Quexsu
    1 temat
    mervi_X
    mervi_X
    1 temat
    bug128
    bug128
    1 temat
  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

×
×
  • Dodaj nową pozycję...