Skocz do zawartości

[Dyskusja] Propozycje


Rekomendowane odpowiedzi

#Wymuszanie respawnu

 

force %player%'s respawn

 

#Pokazywanie animacji na blokach/graczach
 
show %animation% at %block%/%player%
 
animacje:
-bloki:
block break%number% = Poziom zniszczenia bloku
block open/close = w wypadku skrzyń  :f
 
-gracze: 
player punch =  gracz uderza
player wakeup = gracz widzi ściemnienie ekranu jak przy spaniu i "wstaje" po chwili
player take damage = gracz otrzymuje obrażenia
critical = gracz otrzymuje kryt. obr.
crouch = gracz idzie kucając
uncrouch = gracz idzie normalnie
 
 
#Dodanie fajerwerków. Myślę, że możnaby z tego objekt zrobić 
 
new Firework "nazwa"
* - "nazwa".Firework
 
*.setShape{kształt};
*.setAdditionalEffect{efekt dodatkowy};
*.setSize{wielkość};
*.setHeight{wysokosc};
*.setColor{kolor};
*.shot{location};
 
kształty: Ball, Star, Creeper, Burst
Dodatkowe efekty: Twinkle, Trail
rozmiary: small, large
kolory: 15 kolorów tak jak u wełny
 
#Zmiana ikony serwera(np. gdy mamy kilka obrazków w folderze)
 
set server icon to "path"
 
#Zwierzaczki!
Event; On tame
wyrażenie: Tamer/owner of %entity%
#Zapętlanie slotów w ekwipunku
 
loop all slots in %inventory%
 
loop-slot is 1/2/3/4/itd.-crafting/inventory slot of %player%
 
loop-slot is 1/2/3/4/itd.-inventory slot of %block%
 
loop-slot is helmet/chestplate/leggings/boots slot of %living entities%
 
loop-slot is result/fuel/ore slot of %block% -> W tym wypadku działa tylko z piecem
 
loop-slot is 1/2/3/4/itd.-crafing slot of %block% -> W tym wypadku działa tylko z Work Benchem
 
loop-slot is result slot of %block% -> jw.
 
loop-slot is player's held item slot(jest wyrażenie w WS więc czemuby nie zapętlić )
 
item in loop-slot
 
#Regiony! 
 
loop all regions
 
loop-region is "region"
 
#Wysokosc  :c
 
set {_high} to biggest y-location at %location%
 
np. koordynaty stone'a to x: 20, y:10, z:15
 
biggest y-location -> Najwyżej położony solidny blok. Dajmy np. na y=75
 
więc biggest y-location wynosi ten blok+1 czyli w rezultacie wyjdzie nam coś takiego:
 
set {_high} to biggest y-location at %location%
send "%{_high}%" to player = send "x: 20, y: 76, z:15" to player
 
if you know, what i mean 
 
#Literki!
 
set {zmienna} to random letter between a and f -> to by wymagało wprowadzenia jakiegoś alfabetu do skryptu
 
#Więcej:
 
make %living entity% follow %living entity/player% -> jw.
 
make %living entity% guard %living entity% -> jak w pluginie pet Manager. służyłoby do czegoś a'la oswajanie zombiego(nie wiem na ile procent jest to możliwe, ale jest możliwe zrobienie, aby zombie podążał za tobą i bronił cię  :p
 
on ender dragon/creeper/wither/ghast grief -> Gdy owe jednostki ingerują w teren.
 
#gfs
make %living entities% leash %living entities% -> Efekt z Sk+
 
#I niech tą linę uznaje za spawned entity 
 
#Baranki Owce
on sheep dye
on sheep shear
 
#Czas grania graczy
set {zmienna} to {relative} time of %player%
 
bez relative = Całkowity czas
z relative = Czas gracza online :f
 
#dodanie 'tick' do jednostek czasu
 
set {_tick} to tick
 
#obsługa wiadomości JSON
 
json message %string% send %message%
json message %string% run cmd %command%
 
#albo poprostu wiadomość, na którą jak się najedzie lub po kliknięciu na nią wykonująca czynność
 
on message click/aim
 
#coś takiego 
 
#Ten E-mailing dam ci w jednym miejscu bo kiedyś chciałeś myśleć coś o tym 
 
send [e-]mail from %string% of password %string% to [e-]mail %string% with %string%
 
send mail from "[email protected]" of password "mleko" to mail "[email protected]" with "Dodaj to!"
 
#Sprawdzanie, czy gracz walczy
 
player is[n't/ not] in combat
 
#Dodanie więcej opcji do GUI
Typ inventory: chest/enchanting table/crafting/furnace/anvil/brewing stand/etc.
 
#Tablista -> Gdy gracz sprawdzi tablistę(Kliknie TAB  :f)
 
on tablist open
 
#Krytyki
 
on critical damage
 
on damage:
    damage was critical:
        set critical multiplier to %percent%(czyli o ile % krytyk zwiększa DMG)
 
#Spawnowanie steve'a 
 
spawn steve at %location%
 
#Do pętli
 
loop all solid blocks [in region/world ...]
loop all non-solid blocks [in region/world]
 
#Klikanie klawiszy
on %klawisz% click
 
on x click
on enter click
on esc click
 
#Każda pojedyncza litera wiadomości uznawana za coś innego
 
on chat:
    message contains "hipopotamica":
        replace all "hipopotamica" with "%random color%%every single char of content%" in message
 
#Gdy coś jest zakładane na gracza
 
on equip of %item type%:
    event-entity is player:
 
Przecież nie tylko gracz może coś założyć -> Pomęczymy cię xD
 
#Zapętlanie drzew
 
loop all trees:
    loop-tree is oak:
        stop
 
Zanim napiszesz, że się nie da, to wiedz, że jest w ameryce taki serwer, gdzie mają swój dodatek do zapętlania struktur  ;_; Poprostu wklepujesz 128 wzorców na każdy gatunek drzewa i masz!
 
#Zwracanie(jeśli mozliwe) nazwy resource packa, którego używa gracz
 
set {_rp} to ([resource] pack/rp) used by %player%
 
#Cos jak clear drops do dropu z bloków
 
#Więcej efektów wizualnych(cząsteczki deszczu, śniegu, itd.)
 
#Coś, gdy gracz dotknie bloku
 
on touch of %block% 
 
Gdy gracz przejdzie tuż obok bloku, wręcz, gdy się o niego 'otrze' Coś jak on walking on, tylko będzie to dotyczyło np. bloku nad graczem, gdy podskoczy w tunelu o wysokości dwóch bloków, czy bloku z boku, gdy usilnie będzie klikał strzałkę w prawo, mimo tego, że nie ma miejsca xD
 
#Gdy gracz zacznie chodzić, nie gdy poruszy kursorem myszki 
 
on move on any block
 
#full month/day/hour/minute/second
 
Pokażę ci datę, która jest wyrażeniem tych wyrażeń(XD)
:Format daty -> dd.mm.yyyy hh:mm:ss:msms
 
full year 01.01.xxxx 00:00:00:00
full month 01.xx.xxxx 00:00:00:00
full day xx.xx.xxxx 00:00:00:00
full hour xx.xx.xxxx xx:00:00:00
full minute xx.xx.xxxx xx:xx:00:00
full second xx.xx.xxxx xx:xx:xx:00
 
#Jeśli nie ma(a pisałeś, że chyba nie będzie)
 
Zmiana rozmiaru slime'a/magmacube'a///wieku jednostki
 
set targeted entity's size/age to ...
 
#Zapisywanie ekwipunku gracza
 
set {zmienna} to inventory of player
 
restore player's inventory from {zmienna}
 
#Ekwipunki jednostek(Mowa o Villagerze) -> Jako objekt?
 
new Trade "nazwa"
 
* - "nazwa".Trade
 
*.clearOffers{};
*.setOffers{number} -> Villager ma określoną ilość ofert(Aczkolwiek ich ilość może rosnąc w miarę handlu)
*.clearOffer{number} -> Usuwa okreslona oferte u villagera
*.addOffer{%itemstack% [and %itemstack%], %itemstack%, number} -> Nowa oferta(Przed przecinkiem 'waluta', po przecinku 'towar', po drugim przecinku max. ilość użyć
*.lockOffers{number} -> Ile ofert maks. może mieć Villager  :p(Po przekroczeniu tej ilosci zadna nowa sie nie pojawi
 
Trade.getOffer{}; -> Pobiera ofertę z poniższych eventów
Trade.getPayment{}; -> Pobiera 'walutę' z poniższych eventów
Trade.getCommodity{}; -> Pobiera 'towar' z poniższych eventów
Trade.getUses{}; -> Pobiera informację ile razy została użyta oferta
 
eventy:
on offer open -> Gdy pojawi sie u villagera nowa oferta
on offer cancel -> Gdy villager zamknie swoją ofertę
on trade -> Gdy gracz handluje z villagerem
 
Na początku nie widziałem tu kompleksu, ale teraz jest tu tyle tego 
 
#Czy gracz pływa? 
 
%livingentities% is swimming
 
#Strzelanie/Popychanie w danym kierunku(do jakiegoś punktu)/w losowym kierunku
shoot %entity% to %location%
push/shoot %entity% in random direction
 
#Dodawanie receptur reforge'u/enchantu/brewingu/meltingu
 
on reforge/on brew/on melt
 
+ = Reforge/Enchant/Brew/Melt
 
new + "nazwa"
 
* - "nazwa".Reforge
 
*.setRepaired{stick named "&cZlamany patyk"}; -> Przedmiot, który 'naprawiamy'
*.setMaterial{oak log}; -> Materiał, którym naprawiamy
*.setResult{stick named "&aSklejony patyk"}; -> Zmiana wyniku naprawy 
*.setLevel{5}; -> Zmiana wymaganych poziomów
 
* - "nazwa".Enchant
 
*.setEnchanted{stick named "&cNiezaczarowany patyk"}; -> Przedmiot, który chcemy zenchantować 
*.setPayment{gold ingot}; -> Zmienia item wymagany do zenchantowania(W nowym enchantingu )
*.setLevel{1, 10}; -> Zmienia poziom wymagany na pierwszy enchant na liście
*.setLevel{2, 30}; -> Zmienia poziom wymagany na drugi enchant na liście
*.setLevel{3, 50}; -> Zmienia poziom wymagany na trzeci enchant na liście
*.1.setResult{stick of Sharpness 2}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
*.2.setResult{stick of Sharpness 5}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
*.3.setResult{stick of Fire Aspect 2, Sharpness 5}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
 
* - "nazwa".Brew
 
*.setPotion{water bottle};
*.setIngredient{apple};
*.setResult{water bottle named "&4Apple &aJuice"};
 
* - "nazwa".Melt
 
*.setIngredient{water bucket};
Albo:
  *.addFuel{lava bucket};
  *.addFuel{coal};
  *.addFuel{charcoal};
Albo:
*.setFuel{lava bucket, coal, charcoal
*.setResult{water bucket of fire aspect 2 named "&bWrzatek"};
 
#vanish&disguise/ghost
 
disguise %player% as %entity%/%block% -> Zobacz jak to figuruje w disguise crafcie i w skript+ 
 
ghost %player% -> Taki efekt 'ducha' = gracz jest przeźroczysty, ale widzialny
 
#Czachy
 
set block at %location% to %entity% skull
 
#Sprawdzanie, czy komenda istnieje
 
command is unknown
 
#Efekty cząsteczkowe takie same jak w SkriptPlus
 
#Drop itemków, których nie da się podnieść i wyświetla się ich nazwa 
 
false drop{ilosc %itemstack% named "nazwa" with lore "opis", czas istnienia[w sekundach]};
 
#Pobieranie wszystkich lokacji z pewnego zakresu
 
blocks between location (x, y, z) and (x, y, z)
[Dla zainteresowanych dodam takie coś]
Z każdego regionu możecie łatwo pobrać środek(mając koordynaty) i rogi(tak samo) a nawet więcej(Środki odcinków poprowadzonych od wierzchołka do wierzchołka[NIE PRZEKĄTNYCH!])  :p Możecie stworzyć dodatkowy kwadrat i z niego pobierać.
 
Polecenia, które są do tego potrzebne:
 
 
* - "nazwa".Region
 
set {_X1} to *.getUpperX{};
set {_Z1} to *.getLowerZ{};
 
set {_X2} to *.getLowerX{};
set {_Z2} to *.getUpperZ{};
 
Z tych dwóch możecie m. in. wyznaczyć sobie 4 regiony(od każdego wierzchołka w poziomie), co pozwoli na pobranie aż 5 punktów w kilku poleceniach 
 
Centrum kwadratu dwóch lokacji:
 
"Centrum".Region.selectLL{Pierwsza lokacja, Druga Lokacja};
set {_centre} to "Centrum".Region.getCentre{};
"Centrum".Region.delete{};
 
//Nie mam pewności czy to działa, ale nie widzę powodu, czemu nie można byłoby pobierać środka z regionu wyznaczonego dwoma lokacjami
 
#Objekt(już kolejny) -> Książki!
 
 
new Book "nazwa"
 
* - "nazwa".Book
 
*.setTitle{Tytuł};
*.setAuthor{Autor};
*.setLine{Linia, tekst};
*.setLore{Opis}
*.give{player} -> Daje książkę o podanej nazwie F:
 
Jeszcze:
on book read
on page change
 
change page of event-book
 
#Zawartość[bardzo przydatne, w auto-updaterach do plików z configiem, żeby nie zmieniać istniejącego configu ]
 
signed content
set {_text} to result of connect to "url"
 
"%{_text}%" contains "%{_content}%":
    replace all "%signed content%" in "%{_text}%" with ""
    set {new::*} to "%{_text}%" split at ","
    set {_times} to size of {new::*}
    loop {_times} times:
        wf "%{new::%loop-number%}%" "sciezka"
 
Plik na stronie:
gra: 'false'
tak: 'true',
czemu_nie: 'bo tak',
 
Plik ze sciezki:
gra: 'false'
 
Co zostanie dodane:
 
tak: 'true'
czemu_nie: 'bo tak'
 
#Ingerencja w pliki YAML(IMO można z nich zrobić objekt, ale już są odosobnione...)
 
set %number% line of "plik" to "tekst"
remove %number% line of "plik"
 
%number% line of "plik" is [not] exists
%number% line of "plik" is "tekst"
%number% line of "plik" contains "tekst"
    replace all "tekst" in %number% line of "plik" with "inny tekst"
 
#Fałszowanie enchantu -> Nakładanie tego świecenia dla przedmiotu
 
false enchant %item type%
 
#CYFERKI!!!!!
 
%number% is prime -> Sprawdza, czy liczba jest pierwsza
%number% is divisible by %number% -> Sprawdza, czy liczba jest podzielna przez inną liczbę
%number% is[n't/not] even(?) -> Sprawdza, czy liczba jest parzysta
Wyrażenie; %numbers sorted from highest to lowest/lowest to highest% -> Liczby posortowane od najmniejszej, do największej, od największej, do najmniejszej
 
#Ew. event
on item despawn
 
#Kolorki nicków
Zmiana kolorów nicków dla różnych graczy(Jeden gracz widzi na żółto, inny na zielono, trzeci na czerwono :f
set tag of %player% to %string% for %players%
 
#PERMISJE!!!
 
add permission %text% to %player% -> Dodanie graczowi permisji
remove permission %text% from %player% -> Usunięcie graczowi permisji
set player's rank to %text% -> Zmiana rangi gracza
create group %text% -> Stworzenie grupy
remove group %text% -> Usunięcie grupy
set %text% to default group   -> Zmiana grupy na domyślną

add permission %text% to %text% -> Dodawanie permisji grupie

remove permission %text% from %text% -> Usuwanie permisji grupie

set prefix of %text% to %text% -> Zmiana prefiksu grupy

 

#RP :D

give redstone power to %block%

remove redstone power from %block%

%block% has redstone power

 

#Objekt/Complex/Whatever. Dotyczy to map   :f

 

new Map "nazwa"

 

"nazwa".Map.setSize{rozmiar};

"nazwa".Map.setContent{typ zawartości, string}

"nazwa".Map.item{}; -> Tworzy mapę z opisaną zawartością

typy zawartości: Text(Wtedy zamiast 'string' wpisujemy tekst który ma być na mapie) lub Image(wtedy wpisujemy ścieżkę do pliku zamiast string)

 

#Tabliczki!

Make player see line %number% of %block% as %string%

 

#Obsługa chunków i sześcianów

 

set {zmienna} blocks in chunk %chunk% -> Wszystkie bloki chunku

Warunek: if %block% is in chunk %chunk%

 

 

 

Minister ds. propozycji melduje się na służbie

 

EDIT

888 postów XF

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-11877
Udostępnij na innych stronach

he chciał byś tak prosto ;D

już  prościej będzie dodać schemat albo odczytanie jakiegoś pliku .save

 

 

A co do pomysłu da się to napisać  ale musiał byś napisać loader ;D

 

w yml... np 

namiot: 1: 'stone, 1 west, 2 nort'

a w sk kilka loop sprawdzających wszystko ;D Jeśli dobrze byś to rozkminił to byś to zrobił tylko po co .... dla 1 namiotu ?? sprawdzać gdzie jaki klocek w którą stronę odwrócony ??

 

Tylko schemat jest prostym rozwiązaniem ;p 

Chodzi mi o to że przy większej ilości schematów takich jak namiot, który został podany jako przykład schemat, długo się ponownie włącza , dzięki temu sposobowi można by włączać dany schemat tylko np. przy wpisaniu określonej komendy, natomiast w pliku .sk było by o wiele mniej kodu i zbędnych zapętleń a co za tym idzie skrypt szybciej reloadował by się ._. Według mnie było by to przydatne, ale nie jestem ekspertem i zawsze mogę się mylić :p

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-11888
Udostępnij na innych stronach

@UP Lawl?

namiot:

 1: 'stone, 1 west, 2 north'

 

Robiąc tak jak Yooka napisał:

on load:    set {namiot::*} to configuration section "namiot" get of "path"    loop {namiot::*}:        set {namiot.%loop-number%::*} to value "namiot.%loop-number%" get of "path"        set {namiot.%loop-number%.rozstawienie::*} to {namiot.%loop-number%::*} split at ","command /komenda:    trigger:        set {_size} to size of {namiot::*}            loop {_size} times:                set {_loc} to location of player                size of {namiot.%loop-number%.rozstawienie::*} is 2:                    set block {namiot.%loop-number%.rozstawienie::2} to {namiot.%loop-number%.rozstawienie::1}                      size of {namiot.%loop-number%.rozstawienie::*} is 3:                        set block {namiot.%loop-number%.rozstawienie::2} {namiot.%loop-number%.rozstawienie::3} to {namiot.%loop-number%.rozstawienie::1}
Nie daję gwarki, ale winno działaąc
Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-11905
Udostępnij na innych stronach

Przepraszam, że się powtarzam, ale chce to ulepszyć:

może tak

command /tagv:    trigger:        loop all players:              if {test.%player%} is {test.%loop-player%}:                      set player's tagname to "&3TEST &3" for loop-players                stopcommand /tagp:    trigger:        set player's tagname to "&3TEST &3" for players with permission "test.tag"
i jeszcze coś baaaardzo przydatnego ;p

command /taba:    trigger:        set tablist 0 0 to "test" for all players        stopcommand /tabl:    trigger:        loop all players:            if {tab.%loop-player%} is not set:                    set tablist 9 2 to "test" for loop-player                stopcommand /tabp:    trigger:        set tablist 6 1 to "tet" for player        stop
Myśle, że byłoby to baaardzo przydatne ;p
Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-11940
Udostępnij na innych stronach

@2UP Nie powtarzaj się. Propozycja pojawiła się na liście post nad tobą, którą Dziki sam powiedział, żebym wklejał co stronę, aby się nie powtarzały, a ty już 5 raz powtarzasz to samo -_-

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-12008
Udostępnij na innych stronach

 

 

Czy można by dodać takie coś aby w pliku yml umieścić część kodu na na chwilę obecną możliwe jest odczytywanie zmiennych i czegoś jeszcze ale są to linijkowe dane. Chodzi o takie coś (dla przykładu kod na namiot żyrafa )

 

Plik YML nazwany Schemat:

Namiot:    set block 1 meter west 1 meter under to white wool    set block 1 meter east 1 meter under to white wool    set block 1 meter north 1 meter under to white wool    set block 1 meter west 1 meter north 1 meter under event-block to white wool    set block 1 meter east 1 meter north 1 meter under event-block to white wool    set block 1 meter south 1 meter above to white wool    set block 1 meter south to white wool    set block 1 meter south 1 meter east to white wool    set block 1 meter south 1 meter west to white wool    set block 2 meter above to white wool    set block 1 meter north 2 meter above to white wool    set block 2 meter east to white wool    set block 2 meter west to white wool    set block 2 meter east 1 meter north to white wool    set block 2 meter west 1 meter north to white wool    set block 1 meter east 1 meter above to white wool    set block 1 meter west 1 meter above to white wool    set block 1 meter east 1 meter above 1 meter north to white wool    set block 1 meter west 1 meter above 1 meter north to white wool

Plik SK:

on load:    set {schemat::namiot} to value "namiot.namiot" get of "plugins/Skript/scripts/Schematy/namiot.yml" parsed as boolean command /daj [<text&gt]:    trigger:        player has permission "cos.daj":            if arg 1 is "namiot":                give player 1 sponge named "&2Namiot" on place of sponge :    if player have permission "cos.posadz":        name of player's tool is "&2Namiot":                {schemat::namiot}

 

Baaaardzo przydatne by to było.

Można tego użyć np do zaciemniania kodów(oczywiście nie mówię że to będzie jakoś zgrabne, ale jakoś przynajmniej zaciemni).

Pozaw tym teraz piszę skrypt na bossy(poprawiam całkowicie) i by użyć dropów z configu muszę za pomocą skryptu generować inny skrypt, by tam w options dać opcje itki, który następnie dropnie w danej lokalizacji.

Jak dla mnie 120 linijek(a może i więcej) kodu, w porównaniu do np 10 to ogromna oszczędność.

bardzo bym chciał specjalnej zmiennej, która by służyła do tego by była odczytywana jako options, bo dobija mnei pisanie tego mojego kodu...

Np może wyglądać tak:

{^nazwa}

i każdy będzie wiedział o co chodzi(nawet będzie prosto porówna bo będzie ^, zamiast @, a raczej nikt nie używa ^ na początku swoich zmiennych :p ).

Podsumowując mój bardzo długi wywód pragnę tej opcji jak mało czego, chcę wreszcie odczytywać kod z pliku yml i traktować go jak options.

 

 

 

 

 

Kolejna rzecz. Właśnie sobie piszę skrypt na gildie. Chce pokombinować sobie z chunckami(koordynaty i umieszczenie chuncku w siatce chucnków - takie x i z, tak samo jak przy blokach tylko, że dla chuncków), jednak jest problem, bo trzeba pokombinować z kordami chuncków... Dekompiluje więc plugin factions(jakże by inaczej ;) ) i patrzę, a tam:

 
    int chunkX = chunk.getChunkX().intValue();
    int chunkZ = chunk.getChunkZ().intValue();
 
Przyznam, że nie patrzyłem jeszcze do dokumentacji bukkita, ale to raczej bukkit przesyła mu te kordy chucnkowe... I aż mnie coś trafiło, że ja muszę się męczyć i liczyć, a on ma podane na tacy gotowe namiary i porem sobie rogi ustawia:

    int blockX = chunkX * 16;    int blockZ = chunkZ * 16;    showPillar(this.me, world, blockX, blockZ);    blockX = chunkX * 16 + 15;    blockZ = chunkZ * 16;    showPillar(this.me, world, blockX, blockZ);    blockX = chunkX * 16;    blockZ = chunkZ * 16 + 15;    showPillar(this.me, world, blockX, blockZ);    blockX = chunkX * 16 + 15;    blockZ = chunkZ * 16 + 15;
I teraz to o co proszę:
Dodaj obsługę chuncków...
 
PS: Jak nie ustosunkujesz się do tego posta to Ciebie na PW pomęczę :P I prosiłbym o szybkie dodatnie chociaż tej obsługi chuncków, bo chyba dla Ciebie jest banalna do zrobienia, a mi będzie duuuużo łatwiej i szybciej.
Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-12101
Udostępnij na innych stronach

Na wstępie sory, nie chciało mi się czytać 18 stron i nie wiem czy czasem już takie propozycje nie były (ale chyba nie...) :p
> Dodawanie, usuwanie i odczytywanie konkretnej linijki lore
coś takiego:
set the <linijka lore'a> line of lore of the player's tool to "text"
if the <linijka lore'a> line of lore of the player's tool is "tetx"
delete the <linijka lore'a> line of lore of the player's tool
> RGB do fajerwerek

Edytowane przez patryxCraft
Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14065
Udostępnij na innych stronach

do fałszywego enchantu to możnaby dać

give stone sword with falsed enchand

i coś innego:

set chat slot of %player% to "incydent w Black Mesa"

#zmienia treść okienka wpisywania wiadomości

Edytowane przez kryxkan
Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14261
Udostępnij na innych stronach

#Wymuszanie respawnu

 

force %player%'s respawn

 

#Pokazywanie animacji na blokach/graczach
 
show %animation% at %block%/%player%
 
animacje:
-bloki:
block break%number% = Poziom zniszczenia bloku
block open/close = w wypadku skrzyń  :f
 
-gracze: 
player punch =  gracz uderza
player wakeup = gracz widzi ściemnienie ekranu jak przy spaniu i "wstaje" po chwili
player take damage = gracz otrzymuje obrażenia
critical = gracz otrzymuje kryt. obr.
crouch = gracz idzie kucając
uncrouch = gracz idzie normalnie
 
 
#Dodanie fajerwerków. Myślę, że możnaby z tego objekt zrobić 
 
new Firework "nazwa"
* - "nazwa".Firework
 
*.setShape{kształt};
*.setAdditionalEffect{efekt dodatkowy};
*.setSize{wielkość};
*.setHeight{wysokosc};
*.setColor{kolor};
*.shot{location};
 
kształty: Ball, Star, Creeper, Burst
Dodatkowe efekty: Twinkle, Trail
rozmiary: small, large
kolory: 15 kolorów tak jak u wełny
 
#Zmiana ikony serwera(np. gdy mamy kilka obrazków w folderze)
 
set server icon to "path"
 
#Zwierzaczki!
Event; On tame
wyrażenie: Tamer/owner of %entity%
#Zapętlanie slotów w ekwipunku
 
loop all slots in %inventory%
 
loop-slot is 1/2/3/4/itd.-crafting/inventory slot of %player%
 
loop-slot is 1/2/3/4/itd.-inventory slot of %block%
 
loop-slot is helmet/chestplate/leggings/boots slot of %living entities%
 
loop-slot is result/fuel/ore slot of %block% -> W tym wypadku działa tylko z piecem
 
loop-slot is 1/2/3/4/itd.-crafing slot of %block% -> W tym wypadku działa tylko z Work Benchem
 
loop-slot is result slot of %block% -> jw.
 
loop-slot is player's held item slot(jest wyrażenie w WS więc czemuby nie zapętlić )
 
item in loop-slot
 
#Regiony! 
 
loop all regions
 
loop-region is "region"
 
#Wysokosc  :c
 
set {_high} to biggest y-location at %location%
 
np. koordynaty stone'a to x: 20, y:10, z:15
 
biggest y-location -> Najwyżej położony solidny blok. Dajmy np. na y=75
 
więc biggest y-location wynosi ten blok+1 czyli w rezultacie wyjdzie nam coś takiego:
 
set {_high} to biggest y-location at %location%
send "%{_high}%" to player = send "x: 20, y: 76, z:15" to player
 
if you know, what i mean 
 
#Literki!
 
set {zmienna} to random letter between a and f -> to by wymagało wprowadzenia jakiegoś alfabetu do skryptu
 
#Więcej:
 
make %living entity% follow %living entity/player% -> jw.
 
make %living entity% guard %living entity% -> jak w pluginie pet Manager. służyłoby do czegoś a'la oswajanie zombiego(nie wiem na ile procent jest to możliwe, ale jest możliwe zrobienie, aby zombie podążał za tobą i bronił cię  :p
 
on ender dragon/creeper/wither/ghast grief -> Gdy owe jednostki ingerują w teren.
 
#gfs
make %living entities% leash %living entities% -> Efekt z Sk+
 
#I niech tą linę uznaje za spawned entity 
 
#Baranki Owce
on sheep dye
on sheep shear
 
#Czas grania graczy
set {zmienna} to {relative} time of %player%
 
bez relative = Całkowity czas
z relative = Czas gracza online :f
 
#dodanie 'tick' do jednostek czasu
 
set {_tick} to tick
 
#obsługa wiadomości JSON
 
json message %string% send %message%
json message %string% run cmd %command%
 
#albo poprostu wiadomość, na którą jak się najedzie lub po kliknięciu na nią wykonująca czynność
 
on message click/aim
 
#coś takiego 
 
#Ten E-mailing dam ci w jednym miejscu bo kiedyś chciałeś myśleć coś o tym 
 
send [e-]mail from %string% of password %string% to [e-]mail %string% with %string%
 
send mail from "[email protected]" of password "mleko" to mail "[email protected]" with "Dodaj to!"
 
#Sprawdzanie, czy gracz walczy
 
player is[n't/ not] in combat
 
#Dodanie więcej opcji do GUI
Typ inventory: chest/enchanting table/crafting/furnace/anvil/brewing stand/etc.
 
#Tablista -> Gdy gracz sprawdzi tablistę(Kliknie TAB  :f)
 
on tablist open
 
#Krytyki
 
on critical damage
 
on damage:
    damage was critical:
        set critical multiplier to %percent%(czyli o ile % krytyk zwiększa DMG)
 
#Spawnowanie steve'a 
 
spawn steve at %location%
 
#Do pętli
 
loop all solid blocks [in region/world ...]
loop all non-solid blocks [in region/world]
 
#Klikanie klawiszy
on %klawisz% click
 
on x click
on enter click
on esc click
 
#Każda pojedyncza litera wiadomości uznawana za coś innego
 
on chat:
    message contains "hipopotamica":
        replace all "hipopotamica" with "%random color%%every single char of content%" in message
 
#Gdy coś jest zakładane na gracza
 
on equip of %item type%:
    event-entity is player:
 
Przecież nie tylko gracz może coś założyć -> Pomęczymy cię xD
 
#Zapętlanie drzew
 
loop all trees:
    loop-tree is oak:
        stop
 
Zanim napiszesz, że się nie da, to wiedz, że jest w ameryce taki serwer, gdzie mają swój dodatek do zapętlania struktur  ;_; Poprostu wklepujesz 128 wzorców na każdy gatunek drzewa i masz!
 
#Zwracanie(jeśli mozliwe) nazwy resource packa, którego używa gracz
 
set {_rp} to ([resource] pack/rp) used by %player%
 
#Cos jak clear drops do dropu z bloków
 
#Więcej efektów wizualnych(cząsteczki deszczu, śniegu, itd.)
 
#Coś, gdy gracz dotknie bloku
 
on touch of %block% 
 
Gdy gracz przejdzie tuż obok bloku, wręcz, gdy się o niego 'otrze' Coś jak on walking on, tylko będzie to dotyczyło np. bloku nad graczem, gdy podskoczy w tunelu o wysokości dwóch bloków, czy bloku z boku, gdy usilnie będzie klikał strzałkę w prawo, mimo tego, że nie ma miejsca xD
 
#Gdy gracz zacznie chodzić, nie gdy poruszy kursorem myszki 
 
on move on any block
 
#full month/day/hour/minute/second
 
Pokażę ci datę, która jest wyrażeniem tych wyrażeń(XD)
:Format daty -> dd.mm.yyyy hh:mm:ss:msms
 
full year 01.01.xxxx 00:00:00:00
full month 01.xx.xxxx 00:00:00:00
full day xx.xx.xxxx 00:00:00:00
full hour xx.xx.xxxx xx:00:00:00
full minute xx.xx.xxxx xx:xx:00:00
full second xx.xx.xxxx xx:xx:xx:00
 
#Jeśli nie ma(a pisałeś, że chyba nie będzie)
 
Zmiana rozmiaru slime'a/magmacube'a///wieku jednostki
 
set targeted entity's size/age to ...
 
#Zapisywanie ekwipunku gracza
 
set {zmienna} to inventory of player
 
restore player's inventory from {zmienna}
 
#Ekwipunki jednostek(Mowa o Villagerze) -> Jako objekt?
 
new Trade "nazwa"
 
* - "nazwa".Trade
 
*.clearOffers{};
*.setOffers{number} -> Villager ma określoną ilość ofert(Aczkolwiek ich ilość może rosnąc w miarę handlu)
*.clearOffer{number} -> Usuwa okreslona oferte u villagera
*.addOffer{%itemstack% [and %itemstack%], %itemstack%, number} -> Nowa oferta(Przed przecinkiem 'waluta', po przecinku 'towar', po drugim przecinku max. ilość użyć
*.lockOffers{number} -> Ile ofert maks. może mieć Villager  :p(Po przekroczeniu tej ilosci zadna nowa sie nie pojawi
 
Trade.getOffer{}; -> Pobiera ofertę z poniższych eventów
Trade.getPayment{}; -> Pobiera 'walutę' z poniższych eventów
Trade.getCommodity{}; -> Pobiera 'towar' z poniższych eventów
Trade.getUses{}; -> Pobiera informację ile razy została użyta oferta
 
eventy:
on offer open -> Gdy pojawi sie u villagera nowa oferta
on offer cancel -> Gdy villager zamknie swoją ofertę
on trade -> Gdy gracz handluje z villagerem
 
Na początku nie widziałem tu kompleksu, ale teraz jest tu tyle tego 
 
#Czy gracz pływa? 
 
%livingentities% is swimming
 
#Strzelanie/Popychanie w danym kierunku(do jakiegoś punktu)/w losowym kierunku
shoot %entity% to %location%
push/shoot %entity% in random direction
 
#Dodawanie receptur reforge'u/enchantu/brewingu/meltingu
 
on reforge/on brew/on melt
 
+ = Reforge/Enchant/Brew/Melt
 
new + "nazwa"
 
* - "nazwa".Reforge
 
*.setRepaired{stick named "&cZlamany patyk"}; -> Przedmiot, który 'naprawiamy'
*.setMaterial{oak log}; -> Materiał, którym naprawiamy
*.setResult{stick named "&aSklejony patyk"}; -> Zmiana wyniku naprawy 
*.setLevel{5}; -> Zmiana wymaganych poziomów
 
* - "nazwa".Enchant
 
*.setEnchanted{stick named "&cNiezaczarowany patyk"}; -> Przedmiot, który chcemy zenchantować 
*.setPayment{gold ingot}; -> Zmienia item wymagany do zenchantowania(W nowym enchantingu )
*.setLevel{1, 10}; -> Zmienia poziom wymagany na pierwszy enchant na liście
*.setLevel{2, 30}; -> Zmienia poziom wymagany na drugi enchant na liście
*.setLevel{3, 50}; -> Zmienia poziom wymagany na trzeci enchant na liście
*.1.setResult{stick of Sharpness 2}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
*.2.setResult{stick of Sharpness 5}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
*.3.setResult{stick of Fire Aspect 2, Sharpness 5}; -> Nie muszę chyba tłumaczyć, że wynik jest zależny od wybranego enchantu
 
* - "nazwa".Brew
 
*.setPotion{water bottle};
*.setIngredient{apple};
*.setResult{water bottle named "&4Apple &aJuice"};
 
* - "nazwa".Melt
 
*.setIngredient{water bucket};
Albo:
  *.addFuel{lava bucket};
  *.addFuel{coal};
  *.addFuel{charcoal};
Albo:
*.setFuel{lava bucket, coal, charcoal
*.setResult{water bucket of fire aspect 2 named "&bWrzatek"};
 
#vanish&disguise/ghost
 
disguise %player% as %entity%/%block% -> Zobacz jak to figuruje w disguise crafcie i w skript+ 
 
ghost %player% -> Taki efekt 'ducha' = gracz jest przeźroczysty, ale widzialny
 
#Czachy
 
set block at %location% to %entity% skull
 
#Sprawdzanie, czy komenda istnieje
 
command is unknown
 
#Efekty cząsteczkowe takie same jak w SkriptPlus
 
#Drop itemków, których nie da się podnieść i wyświetla się ich nazwa 
 
false drop{ilosc %itemstack% named "nazwa" with lore "opis", czas istnienia[w sekundach]};
 
#Pobieranie wszystkich lokacji z pewnego zakresu
 
blocks between location (x, y, z) and (x, y, z)
[Dla zainteresowanych dodam takie coś]
Z każdego regionu możecie łatwo pobrać środek(mając koordynaty) i rogi(tak samo) a nawet więcej(Środki odcinków poprowadzonych od wierzchołka do wierzchołka[NIE PRZEKĄTNYCH!])  :p Możecie stworzyć dodatkowy kwadrat i z niego pobierać.
 
Polecenia, które są do tego potrzebne:
 
 
* - "nazwa".Region
 
set {_X1} to *.getUpperX{};
set {_Z1} to *.getLowerZ{};
 
set {_X2} to *.getLowerX{};
set {_Z2} to *.getUpperZ{};
 
Z tych dwóch możecie m. in. wyznaczyć sobie 4 regiony(od każdego wierzchołka w poziomie), co pozwoli na pobranie aż 5 punktów w kilku poleceniach 
 
Centrum kwadratu dwóch lokacji:
 
"Centrum".Region.selectLL{Pierwsza lokacja, Druga Lokacja};
set {_centre} to "Centrum".Region.getCentre{};
"Centrum".Region.delete{};
 
//Nie mam pewności czy to działa, ale nie widzę powodu, czemu nie można byłoby pobierać środka z regionu wyznaczonego dwoma lokacjami
 
#Objekt(już kolejny) -> Książki!
 
 
new Book "nazwa"
 
* - "nazwa".Book
 
*.setTitle{Tytuł};
*.setAuthor{Autor};
*.setLine{Linia, tekst};
*.setLore{Opis}
*.give{player} -> Daje książkę o podanej nazwie F:
 
Jeszcze:
on book read
on page change
 
change page of event-book
 
#Zawartość[bardzo przydatne, w auto-updaterach do plików z configiem, żeby nie zmieniać istniejącego configu ]
 
signed content
set {_text} to result of connect to "url"
 
"%{_text}%" contains "%{_content}%":
    replace all "%signed content%" in "%{_text}%" with ""
    set {new::*} to "%{_text}%" split at ","
    set {_times} to size of {new::*}
    loop {_times} times:
        wf "%{new::%loop-number%}%" "sciezka"
 
Plik na stronie:
gra: 'false'
tak: 'true',
czemu_nie: 'bo tak',
 
Plik ze sciezki:
gra: 'false'
 
Co zostanie dodane:
 
tak: 'true'
czemu_nie: 'bo tak'
 
#Ingerencja w pliki YAML(IMO można z nich zrobić objekt, ale już są odosobnione...)
 
set %number% line of "plik" to "tekst"
remove %number% line of "plik"
 
%number% line of "plik" is [not] exists
%number% line of "plik" is "tekst"
%number% line of "plik" contains "tekst"
    replace all "tekst" in %number% line of "plik" with "inny tekst"
 
#Fałszowanie enchantu -> Nakładanie tego świecenia dla przedmiotu
 
false enchant %item type%
 
#CYFERKI!!!!!
 
%number% is prime -> Sprawdza, czy liczba jest pierwsza
%number% is divisible by %number% -> Sprawdza, czy liczba jest podzielna przez inną liczbę
%number% is[n't/not] even(?) -> Sprawdza, czy liczba jest parzysta
Wyrażenie; %numbers sorted from highest to lowest/lowest to highest% -> Liczby posortowane od najmniejszej, do największej, od największej, do najmniejszej
 
#Ew. event
on item despawn
 
#Kolorki nicków
Zmiana kolorów nicków dla różnych graczy(Jeden gracz widzi na żółto, inny na zielono, trzeci na czerwono :f
set tag of %player% to %string% for %players%
 
#PERMISJE!!!
 
add permission %text% to %player% -> Dodanie graczowi permisji
remove permission %text% from %player% -> Usunięcie graczowi permisji
set player's rank to %text% -> Zmiana rangi gracza
create group %text% -> Stworzenie grupy
remove group %text% -> Usunięcie grupy
set %text% to default group   -> Zmiana grupy na domyślną

add permission %text% to %text% -> Dodawanie permisji grupie

remove permission %text% from %text% -> Usuwanie permisji grupie

set prefix of %text% to %text% -> Zmiana prefiksu grupy

 

#RP :D

give redstone power to %block%

remove redstone power from %block%

%block% has redstone power

 

#Objekt/Complex/Whatever. Dotyczy to map   :f

 

new Map "nazwa"

 

"nazwa".Map.setSize{rozmiar};

"nazwa".Map.setContent{typ zawartości, string}

"nazwa".Map.item{}; -> Tworzy mapę z opisaną zawartością

typy zawartości: Text(Wtedy zamiast 'string' wpisujemy tekst który ma być na mapie) lub Image(wtedy wpisujemy ścieżkę do pliku zamiast string)

 

#Tabliczki!

Make player see line %number% of %block% as %string%

 

#Obsługa chunków i sześcianów

 

set {zmienna} blocks in chunk %chunk% -> Wszystkie bloki chunku

Warunek: if %block% is in chunk %chunk%

 

#Różne rodzaje clicków I NIE TYLKO

http://jd.bukkit.org/rb/apidocs/org/bukkit/event/inventory/ClickType.html


 

Doszła nowa propozycja(na samym dole)

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14294
Udostępnij na innych stronach

Hmm, ja radziłbym poprawienie dotychczasowych rzeczy, a dopiero potem branie się za nowe:

- Przy 15+ osobach wywala kilka razy na sekunde bład, przez co nie da się nic z konsoli odczytać (tak, mam żałosnego bukkita 1.7.2 R.3)

-WS nie działa na spigocie. Dlaczego? Większość pluginów działa na oby dwóch silnikach, i nie mają z tym problemów. Ściągne sobie essentials i działa na wszystkich silnikach, i oni nikomu się nie żalą, że piszą pod konkretną wersje.

Dodatkowo odkryłem 3 błędy z craftingami, przez co te z SkQuery są nawet lepsze od obecnych WS. A mianowicie:

-Jeżeli mam crafting np. Stone, włącze skrypt scraftuje go, zmien.ie że z tych składników robi się np. Dirt i zreloaduje skrypt, to wtedy i tak się stone craftuje, dopiero restart całego serwera to naprawia. (w SkQuery to działa dobrze...)

- Gdy mamy crafting, że po całym zapełnieniu stołu (po 1 szkle) tworzy się np. Kilof, to gdy chociaż w jeden slot włożymy 2 szkła, to crafting nie działa , a powinien działać i zostawiać to 1 szkło w slocie, w którym go włożyliśmy (i znowu skQuery wygrywa, bo tam się nie buguje w ten sposób)

I 3 bug: jeżeli utworzymy crafting, że z 2 butelek o tej samej nazwie tworzy się jedna butelka o podobnej (ale innej) nazwie, to taki crafting nie działa...

Szczerze, to przechodzę na skquery, coprawda będzie mi brakowało kilku opcji, ale przeżyje. Od kilku tygodni z skquery nie mam żadnych problemów, a z WS mnóstwo.

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14804
Udostępnij na innych stronach

-Jeżeli mam crafting np. Stone, włącze skrypt scraftuje go, zmien.ie że z tych składników robi się np. Dirt i zreloaduje skrypt, to wtedy i tak się stone craftuje, dopiero restart całego serwera to naprawia. (w SkQuery to działa dobrze...)

 

Zasmucę cię. W SkQuery nie możesz ustawić nazwy, lore czy enchantu składników -> Tu możesz

W SkQuery reload też nie zawsze działa(A na Spigocie to już w ogóle musisz restartować...)

3 Bug to chyba tylko ty masz, bo u mnie to działa bez zarzutu...

 

Co do drugiego się nie wypowiem

 

WS nie działa na Spigocie? Działa, tylko się buguje. Tak samo SkQuery i nie masz co go bronić, bo się buguje m. in. Scoreboard czy wyżej wspomniane receptury...

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14825
Udostępnij na innych stronach

Nie ma takiej możliwości; będzie w MC 1.8, to wtedy taka możliwość się pojawi ;F. Można do czystego Skripta dodać itemki z modów i WildSkript(chyba) będzie ich ID odczytywał :F

Odnośnik do komentarza
https://skript.pl/temat/524-dyskusja-propozycje/#findComment-14835
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...