-
Ilość zawartości
600 -
Rejestracja
-
Wygrane w rankingu
5
Odpowiedzi społeczności
-
piratjsk odpowiedź w /PROBLEM Top np. rankingu danej grupy np. gildii został oznaczony jako odpowiedź
Jeśli wszystko dobrze zrozumiałem, czyli:
{grupa::%nazwa grupy%:: *} przechowuje nicki graczy którzy są w grupie (dodawane w sposób: add player to {grupa::%nazwa grupy%:: *})
{lvl::%nazwa gracza%} przechowuje pkt danego gracza
to ten kod powinien być tym czego szukasz:
# dodawanie pkt graczy w grupie do listy# {_lista::%nazwa grupy%} = pkt danej grupyloop {grupa::*}: set {_pkt.%loop-value%} to 0 loop {grupa::%loop-value%::*}: add {lvl::%loop-value-2%} to {_pkt.%loop-value-1%} set {_lista::%loop-value%} to {_pkt.%loop-value%}set {_num} to size of {_lista::*}# sortowanie listyloop {_num} times: loop {_lista::*}: {_v.%loop-number%} is not set: set {_v.%loop-number%} to loop-value set {_n.%loop-number%} to loop-index loop-value is more than {_v.%loop-number%}: set {_v.%loop-number%} to loop-value set {_n.%loop-number%} to loop-index delete {_lista::%{_n.%loop-number%}%}# wyswietlanie wynikusend "Ranking grup:"loop {_num} times: send "%loop-number%. %{_n.%loop-number%}% (%{_v.%loop-number%}%)"(kod nietestowany)
-
piratjsk odpowiedź w parsed as został oznaczony jako odpowiedź
command /sklep [<text>] [<text>] [<text>] [<text>]:Tam gdzie potrzebujesz tekst, używasz normalnie:
arg 3Tam gdzie potrzebujesz gracza, używasz:
set {_p} to arg 3 parsed as player# i teraz zamiast do arg 3 odwołujesz się do:{_p}Możesz też zrobić tak:
set {_p} to arg 3 parsed as offline player# i teraz masz możliwość sprawdzenia czy gracz jest online czy nie:if {_p} is a player: send "gracz %{_p}% jest online"else: send "gracza %{_p}% nie ma na serwerze" -
piratjsk odpowiedź w Miejsce w topce został oznaczony jako odpowiedź
Aby wyświetlić miejsce w rankingu konkretnego gracza musisz zapisać do zmiennych wszystkie wartości z listy tak jak przy wyświetlaniu rankingu, następnie zapętlić te zmienne i sprawdzić czy ta przechowująca nick jest nickiem konkretnego gracza, jeśli tak wyświetlić przypisaną jej zmienną przechowującą pozycję w rankingu.
set {_num} to size of {rank.r::*}loop {_num} times: loop {rank.r::*}: {_v.%loop-number%} is not set: set {_v.%loop-number%} to loop-value set {_n.%loop-number%} to loop-index loop-value is greater than {_v.%loop-number%}: set {_v.%loop-number%} to loop-value set {_n.%loop-number%} to loop-index remove {_v.%loop-number%} from {rank.r::*}loop {_num} times: {_n.%loop-number%} is player: send "twoje miejsce w rankingu: %{_v.%loop-number%}%" stop -
piratjsk odpowiedź w Nie działa. został oznaczony jako odpowiedź
Edit: aj, @up był szybszy
jeśli chcesz kliknąć na postawiony blok (np. tabliczke albo dirt):
on click on <blok>:
jeśli chcesz kliknąć trzymając dany przedmiot (np. miecz albo mączkę kostną):
on click holding <przedmiot>: -
piratjsk odpowiedź w Spawn moba nad blokiem został oznaczony jako odpowiedź
To powinno zadziałać:
set {_loc} to location of block 7 meters horizontally behind loop-playerwhile block at {_loc} is not air: set {_loc} to location of block above block at {_loc}while block above block at {_sloc} is not air: set {_loc} to location of block above block at {_loc}spawn 1 Skeleton at {_loc}Ustawisz lokację początkową i za pomocą pętli while sprawdzasz czy blok jest powietrzem, jeśli nie powtarzasz to dla bloku wyżej itd, później to samo dla bloku powyżej. Gdy 2 bloki nad sobą są powietrzem potwór jest spawniony. -
piratjsk odpowiedź w Wyłączenie Wybuchu TNT na czas nocny został oznaczony jako odpowiedź
To powinno zadziałać:
every 30 seconds: set {_s::*} to text from "http://nicc0.pl/skript/godzina.txt" split at ":" set {_s::1} to {_s::1} parsed as integer {_s::1} is between 0 and 7: set {tnt} to false stop set {tnt} to true -
piratjsk odpowiedź w On explode {warunek} został oznaczony jako odpowiedź
Spróbuj czegoś takiego:
on explode : loop blocks in radius 5 of event-location: loop {stoniarka::*}: loop-value is location of loop-block remove loop-value from {stoniarka::*}(pisane na sucho, bez sprawdzania)
-
piratjsk odpowiedź w Zapętlanie graczy. został oznaczony jako odpowiedź
Zanim odwołasz się do jakiegokolwiek gracza w zdarzeniu every musisz jakiegoś zapętlić, gdyż to zdarzenie nie jest z żadnym powiązane.
every second: loop all players: {picie.%loop-player%} is 0 damage loop-player by 1 heartNie możesz umieścić jednego zdarzenia w innym, gdy zapętlisz graczy musisz odwoływać się do %loop-player% zamiast %player%.
every 2 minutes: loop all players: remove 1 from {xxx.%loop-player%} -
piratjsk odpowiedź w Pętle został oznaczony jako odpowiedź
W linijce sprawdzającej wartość zmiennej użyłeś wyrażenia %player%, którego nie można używać w zdarzeniu every.
Musisz najpierw zapętlić graczy i skorzystać z wyrażenia %loop-player%.
every 5 seconds: loop all players: {vip.buty.%loop-player%} is true loop-player is wearing boots apply speed 2 to the loop-player for 5 seconds apply jump 2 to the loop-player for 5 seconds -
piratjsk odpowiedź w Nazwa potwora został oznaczony jako odpowiedź
command /jdz [<text>] [<integer=1>]: trigger: arg 1 is "setspawn": set {jdz.spawn} to location of player send "Ustawiles spawn jedzonka!" arg 1 is "spawn": loop arg 2 times: spawn pig at {jdz.spawn} set name of last spawned entity to "Jedzonko | %spawned pig's health%/%max health of last spawned entity%"on damage of pig: name of victim contains "Jedzonko | " wait 1 tick set name of victim to "Jedzonko | %health of victim%/%max health of victim%"/jdz setspawn - ustawia spawn /jdz spawn [liczba] - spawnuje świnki (domyślnie 1) -
piratjsk odpowiedź w Permission+MySQL został oznaczony jako odpowiedź
@up
Autor poszukuje pluginu do zarządzania uprawnieniami, nie do autoryzowania kont graczy.
@topic
Pluginy, które udało mi się na szybko znaleźć:
[*]rscPermissions: dev.bukkit.org/bukkit-plugins/rscpermissions/ [*]zPermissions: dev.bukkit.org/bukkit-plugins/zpermissions/
-
piratjsk odpowiedź w Komenda na Vip'a został oznaczony jako odpowiedź
Komendy:
[*]/vc <generuj/gen/g> <ilość użyć> - generuje losowy kod (vc.gen, vc.gen.*) [*]/vc <my/moj/m> <ilość użyć> <kod> - wprowadza do systemu nasz własny kod (vc.gen.my, vc.gen.*) [*]/vc <kup/k> <kod> - wykorzystuje kod (vc.kup) [*]/vc <lista/list/l> - wyświetla listę ostatnio zakupionych vipów (vc.list, vc.list.*) [*]/vc <lista/list/l> <kody/k> - wyświetla listę aktywnych kodów (vc.list.kody, vc.list.*)
Musisz sobie tylko sam dopisać kod dający vipa (linia 49).
Download!
-
piratjsk odpowiedź w Akcja po zabiciu potworka/moba został oznaczony jako odpowiedź
Spróbuj czegoś takiego:
on death of zombie: attacker is a player send "&7Zabiles Zombie! Ty brutalu" to attacker -
piratjsk odpowiedź w Generowanie kodów i ustawianie zmiennych został oznaczony jako odpowiedź
Jeśli komenda /cuse ma aktywować(wykorzystywać) dany kod, to tu jest rozwiązanie:
options: tag: &3[Gamercraft]&2command /gcode: trigger: player has permission "code.generate": set {_k1} to random integer between 0 and 9 set {_k2} to random integer between 0 and 9 set {_k3} to random integer between 0 and 9 set {_k4} to random integer between 0 and 9 set {_k5} to random integer between 0 and 9 set {_k6} to random integer between 0 and 9 set {_k7} to random integer between 0 and 9 set {_k8} to random integer between 0 and 9 set {_k9} to random integer between 0 and 9 set {_kod} to "%{_k1}%%{_k2}%%{_k3}%%{_k4}%%{_k5}%%{_k6}%%{_k7}%%{_k8}%%{_k9}%" loop {codes::*}: {_kod} is loop-value make player execute command "gcode" stop send "{@tag} Kod &8- &b%{_kod}%" add {_kod} to {codes::*}command /gcodes: trigger: send "{@tag} Lista kodow &e(%size of {codes::*}%) &8- &b%{codes::*}%"command /cuse [<text>]: trigger: loop {codes::*}: arg is loop-value remove arg from {codes::*} send "{@tag} Kod aktywowany!" stop send "{@tag} Niepoprawny kod!"Wykorzystany kod jest usuwany z listy.Przy okazji usunąłem niepotrzebne linijki, zastosowałem zmienne lokalne, dodałem sprawdzanie czy przypadkiem generowany kod nie jest już na liście i wiadomość jeśli wpiszemy niepoprawny kod. -
piratjsk odpowiedź w Bar - wiadomosc na pasku zycia bossa i zablokowanie wybuchania diaxow przez TNT został oznaczony jako odpowiedź
Z tego co się orientuję to na obecnej wersji bukkita/spigota boss bar z SkriptPlus nie działa. (wypowiedź autora sk+ na ten temat)
-
piratjsk odpowiedź w Lista logowań został oznaczony jako odpowiedź
on quit: set {obecnosci::%player%} to nowon join: delete {obecnosci::%player%} {nieobecni::%player%} is set: delete {nieobecni::%player%}every minute: loop {obecnosci::*}: set {_val} to loop-value difference between {_val} and now is greater than or equal to 7 days loop {nieobecni::*}: loop-value-2 is loop-index-1 stop add loop-index to {nieobecni::*}command /nieobecni: trigger: send "Gracze nieobecni od 7 (lub wiecej) dni:" send "%{nieobecni::*}%" -
piratjsk odpowiedź w addon do skryptu OX został oznaczony jako odpowiedź
on walking on bedrock: if {ox.play.%player%} is 1: execute console command "/warp oxs %player%" send "&b[OX]&4Gracz %player% odpadl!" to all players remove 1 from {ox.online} if {ox.online} = 1: set {zmienna.%player%} to true send "&b[OX]&9wejdz na biale pole aby wygrac"on walking on quartz block: {zmienna.%player%} is true delete {zmienna.%player%} send "&b[OX]&9%player% Wygral OX!!!" to all players execute console command "/warp oxwin %player%"W momencie gdy ostatni gracz będzie chodził po bedrocku możesz stworzyć zmienną, a następnie gdy wejdzie na białe pole sprawdzić czy ona istnieje - jeśli tak to ją usunąć.
-
piratjsk odpowiedź w Enchant w nowej recepturze? został oznaczony jako odpowiedź
register new shaped recipe for tnt of sharpness 1 named "&6Bomba Nuklearna!" using none, diamond, none, diamond, tnt, diamond, none, diamond, noneOczywiście powyższy kod trzeba podpiąć do jakiegoś eventu/komendy, najlepiej do zdarzenia "on script load:".
-
piratjsk odpowiedź w Skript money. został oznaczony jako odpowiedź
@upZanim odwołasz się do zapętlonego gracza, musisz go zapętlić.
every 2 seconds: loop all players: add 20 to balance of loop-player send "&aOtrzymales &620$&a za przebywanie na serwerze!." to loop-player -
piratjsk odpowiedź w Problem z Variables został oznaczony jako odpowiedź
Te ostrzeżenia oznaczają, że jakieś zmienne mogą mieć taką samą nazwę (np. użyta w komendzie {chat::%arg%} może przyjąć taką samą nazwę jak zdefiniowana w innym miejscu w kodzie zmienna {chat::*}).
Ogólnie nie należy się tymi ostrzeżeniami przejmować.
Można je wyłączyć w konfiguracji Skripta, w tym celu trzeba ustawić opcję disable variable conflict warnings: na true.
-
piratjsk odpowiedź w Przechodzenie parkoura tylko raz na 24h został oznaczony jako odpowiedź
Definiując zmienne nie możesz użyć %argument%, gdyż zmienne te są definiowane przy starcie skryptu, a nie przy pierwszym odwołaniu się do nich. Prościej: %arg% może być używany tylko w kodzie komendy, nigdzie indziej.
Rozwiązanie problemu:
dodaj w kodzie, przed pierwszym odwołaniem się do tej zmiennej linijkę:
- jeśli używasz tego w komendzie (x - w zależności który argument przechowuje pożądaną wartość):
{pkk.%arg x%.%player%} is not set: set {pkk.%arg x%.%player%} to false- jeśli używasz tego po kliknięciu w tabliczkę (x - w zależności w której linii przechowywana jest pożądana wartość):
{pkk.%line x of clicked block%.%player%} is not set: set {pkk.%line x of clicked block%.%player%} to false- w kodzie który podałeś wyżej:
on rightclick on sign: line 3 is "&lKoniec" {pkk.%line 1 of clicked block%.%player%} is not set: set {pkk.%line 1 of clicked block%.%player%} to false #dalszy kod
