Skocz do zawartości

DropCore - Zautomatyzowany skrypt na drop [Minecraft 1.16+]


# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Autor: Fendi

 

 

Wymagania:

  • Skript 2.6+
  • skBee
  • Skript-Reflect
  • Minecraft 1.16+

Opis:

 Ten skrypt oferuje trzy proste komendy:

  • /drop - otwiera interfejs GUI do dropów
  • /turbodrop - aktywuje boost dropu dla całego serwera
  • /dropreset - resetuje skrypt

 

Wszystkie parametry w sekcji "options" oraz przy ładowaniu skryptu można łatwo modyfikować. Istnieje możliwość dostosowania podstawowej wartości procentowej dla surowców, na przykład diamentów. Dodatkowo, istnieje opcja dodania premium casów, obecnie jednak tylko na podstawie nazwy.

 

W czym różni się ten skrypt od typowych rozwiązań tego typu?

  • W przeciwieństwie do wielu innych skryptów tego rodzaju, które mogą osiągać nawet 700 linijek kodu, ten skrypt autorstwa Fendi składa się z zaledwie 200 linijek. Wszelkie możliwe automatyzacje zostały tu zastosowane, nawet nieskończone pętle nie są używane.

 

Kod skryptu:

Spoiler
# # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                 #
#    Skrypt stworzony przez Fendi                 #
#    Zakaz podpisywania go jako swojego           #
#    Zakaz sprzedawania                           #
#    Zezwalam na modyfikacje lub udostepnianie    #
#                                                 #
# # # # # # # # # # # # # # # # # # # # # # # # # #



#Wazne!
#Przy pierwszym odpaleniu skryptu najlepiej poklikac we wszystko w gui pod komenda /drop
options:
    # Nazwa gui /drop
    gui-nazwa: &8Drop
    # Nazwa premium casów, jezeli masz je w innym skrypcie
    premiumcase-nazwa: &3&lPremium Case
    # Ilosc expa przy wykopaniu stone
    xp: 20
    # Wiadomosc po wlaczeniu turbodropa
    turbo-wiadomosc: &aWłączono &cTurbo Drop
    # Kolory czasu turbodropa
    czas-turbo-wiadomosc: &a&l

on script load:
    # Podstawowe szanse na drop przedmiotow
    set {drop::szanse::0} to 12    #Diament
    set {drop::szanse::1} to 8     #Emerald
    set {drop::szanse::2} to 14    #zelazo
    set {drop::szanse::3} to 13    #zloto
    set {drop::szanse::4} to 18    #wegiel
    set {drop::szanse::5} to 14    #redstone
    set {drop::szanse::6} to 4     #jablko
    set {drop::szanse::7} to 3     #obsydian
    set {drop::szanse::8} to 2     #perla
    set {drop::szanse::9} to 6     #ksiazka
    set {drop::szanse::10} to 7     #tnt
    set {drop::szanse::11} to 0.08  #premiumcase


command /drop:
    trigger:
#       0.3 oznacza, ze % jaki gracz ma na dany item jest zwiekszany o 130%. Czyli zamiast przykladowo 10 mamy 13
        set {drop::ranga::%player%} to 0
        if player has permission "drop.vip":
            set {drop::ranga::%player%} to 0.3
        if player has permission "drop.svip":
            set {drop::ranga::%player%} to 0.5
        if player has permission "drop.sponsor":
            set {drop::ranga::%player%} to 0.7
        Fgui1(player)


# Komenda na reset calego skryptu. Wymaga ponownego przeklikania wszystkiego

command /dropreset:
    permission: op
    trigger:
        delete {drop::*}
        reload script script
        kick all players due to "&cReset!"
        set {drop::mnoznik} to 0


#W komendzie /turbodrop wpisujemy ilosc czasu na jaki ma byc turbo drop, gdy chcesz np 30 minut to wpisz 30 minutes, albo jak 10 minut to 10 minutes, 15 sekund to 15 seconds, 1 godzina to 1 hour itp, wazne aby bylo po ang
# Max czas to 1d!
command /turbodrop <timespan>:
    permission: op
    usage: &e[Uzycie]&a /turbodrop (ilosc czasu po ang)
    trigger: 
        set {drop::czas} to arg 1
        set {drop::now} to now
        set {drop::mnoznik} to 0.5
        send "{@turbo-wiadomosc} %turbotime()%" to all players
            














#Tego co jest nizej, bez wiedzy o skripcie nie zalecam ruszac.
on join:
    if {drop::wiadomosc::%player%} is not set:
        set {drop::wiadomosc::%player%} to "&cWylaczony"
    if {drop::status::%player%::*} is not set:
        Fstatusy(player, "&cWylaczony")
    if {drop::bruk::%player%} is not set:
        set {drop::bruk::%player%} to "&2Wlaczony"
function Fstatusy(p: player, s: string):
    set {_m} to -1
    while {_m} != 11:
        add 1 to {_m}
        set {drop::status::%{_p}%::%{_m}%} to {_s}
function Fgui1(p: player):
    set {_} to chest inventory with 6 rows named "{@gui-nazwa}"
    set slot 0 of {_} to diamond named "&8» &b&lDIAMENT &8«" with lore "&8» &7Szansa: &6%{drop::szanse::0}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::0}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 1 of {_} to emerald named "&8» &2&lEMERALD &8«" with lore "&8» &7Szansa: &6%{drop::szanse::1}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::1}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 2 of {_} to iron ingot named "&8» &7&lZELAZO &8«" with lore "&8» &7Szansa: &6%{drop::szanse::2}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::2}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 3 of {_} to gold ingot named "&8» &6&lZLOTO &8«" with lore "&8» &7Szansa: &6%{drop::szanse::3}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::3}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 4 of {_} to coal named "&8» &8&lWEGIEL &8«" with lore "&8» &7Szansa: &6%{drop::szanse::4}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::4}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 5 of {_} to redstone named "&8» &4&lREDSTONE &8«" with lore "&8» &7Szansa: &6%{drop::szanse::5}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::5}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 6 of {_} to apple named "&8» &4&lJABLKO &8«" with lore "&8» &7Szansa: &6%{drop::szanse::6}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::6}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 7 of {_} to obsidian named "&8» &1&lOBSYDIAN &8«" with lore "&8» &7Szansa: &6%{drop::szanse::7}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::7}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 8 of {_} to ender pearl named "&8» &9&lPERLA &8«" with lore "&8» &7Szansa: &6%{drop::szanse::8}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::8}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 9 of {_} to book named "&8» &8&lKSIAZKA &8«" with lore "&8» &7Szansa: &6%{drop::szanse::9}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::9}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 10 of {_} to tnt named "&8» &4&lTNT &8«" with lore "&8» &7Szansa: &6%{drop::szanse::10}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::10}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 11 of {_} to chest named "&8» &9&lPREMIUMCASE &8«" with lore "&8» &7Szansa: &6%{drop::szanse::11}%%%%nl%&8» &7Status: %{drop::status::%{_p}%::11}%%nl%&8» &7Kliknij aby zmienic!"
    set slot 37 of {_} to green stained clay named "&8» &a&lWlacz caly drop &8«"
    set slot 36 of {_} to red stained clay named "&8» &c&lWylacz caly drop &8«"
    set slot 41 of {_} to paper named "&8» &f&lWiadomości &8«" with lore "&8» &7Status: %{drop::wiadomosc::%{_p}%}%%nl%&8» &7Kliknij aby zmienic!"
    if {drop::mnoznik} = 0:
        set slot 42 of {_} to diamond pickaxe named "&8» &6&lTurbo&e&lDrop &8«" with lore "&8» &7Status: &cWylaczony"
    else:
        set {_text} to turbotime()
        set slot 42 of {_} to diamond pickaxe named "&8» &6&lTurbo&e&lDrop &8«" with lore "&8» &7Status: &2Wlaczony%nl%&8» &7Zakonczy sie za: %{_text}%"
    set slot 43 of {_} to cobblestone named "&8» &8&lBRUK &8«" with lore "&8» &7Status: %{drop::bruk::%{_p}%}%%nl%&8» &7Kliknij aby zmienic!"
    open {_} to {_p}
function Freplacelang(n: string) :: string:
    if {_n} contains "diamond":
        replace "diamond" with "Diament" in {_n}
        return {_n}
    else if {_n} contains "emerald":
        replace "emerald" with "Emerald" in {_n}
        return {_n}
    else if {_n} contains "iron ingot":
        replace "iron ingot" with "Zelazo" in {_n}
        return {_n}
    else if {_n} contains "gold ingot":
        replace "gold ingot" with "Zloto" in {_n}
        return {_n}
    else if {_n} contains "coal":
        replace "coal" with "Wegiel" in {_n}
        return {_n}
    else if {_n} contains "redstone item":
        replace "redstone item" with "Redstone" in {_n}
        return {_n}
    else if {_n} contains "apple":
        replace "apple" with "Jablko" in {_n}
        return {_n}
    else if {_n} contains "obsidian block":
        replace "obsidian block" with "Obsydian" in {_n}
        return {_n}
    else if {_n} contains "ender pearl":
        replace "ender pearl" with "Perla" in {_n}
        return {_n}
    else if {_n} contains "book":
        replace "book" with "Ksiazka" in {_n}
        return {_n}
    else if {_n} contains "tnt block":
        replace "tnt block" with "TNT" in {_n}
        return {_n}
function turbotime() :: string:
    set {_t} to {drop::now}
    add {drop::czas} to {_t}
    set {_a} to difference between now and {_t}
    set {_secs} to rounded {_a}.getTicks() / 20
    set {_hours} to floor(mod({_secs}, 86400) / 3600)
    set {_mins} to floor(mod({_secs}, 3600) / 60)
    set {_s} to floor(mod({_secs}, 60) / 1)
    return "{@czas-turbo-wiadomosc}%{_hours}%h %{_mins}%m %{_s}%s"
on inventory click:
    event-inventory is not player's inventory
    if name of event-inventory is "{@gui-nazwa}":
        cancel event
        close player's inventory
        if clicked slot is 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10 or 11:
            set {drop::status::%player%::%index of event-slot%} to "&2Wlaczony" if ({drop::status::%player%::%index of event-slot%} ? "&cWylaczony") is "&cWylaczony" else "&cWylaczony" 
            if {drop::types::*} is not set:
                set {_m} to -1
                while {_m} != 11:
                    add 1 to {_m}
                    set {drop::types::%{_m}%} to type of slot {_m} of event-inventory 
                    clear tag "display" of nbt of {drop::types::%{_m}%}
        else if clicked slot is 37:
            Fstatusy(player, "&2Wlaczony")
        else if clicked slot is 36:
            Fstatusy(player, "&cWylaczony")
        else if clicked slot is 41:
            set {drop::wiadomosc::%player%} to "&2Wlaczony" if ({drop::wiadomosc::%player%} ? "&cWylaczony") is "&cWylaczony" else "&cWylaczony"
        else if clicked slot is 43:
            set {drop::bruk::%player%} to "&2Wlaczony" if ({drop::bruk::%player%} ? "&cWylaczony") is "&cWylaczony" else "&cWylaczony"
        Fgui1(player) 
on break: 
    if {drop::czas} is set:
        if difference between {drop::now} and now is smaller than {drop::czas}:
            send action bar "&c&lTurbo Drop: %turbotime()%" to player
        else:
            delete {drop::czas}
            delete {drop::now}
            set {drop::mnoznik} to 0
    type of event-block is stone
    if {drop::bruk::%player%} is "&cWylaczony":
        clear drops
    set {_} to -1
    loop {drop::types::*}:
        add 1 to {_}
        if {drop::status::%player%::%{_}%} is "&2Wlaczony": 
            chance of ({drop::szanse::%{_}%}*({drop::ranga::%player%}+{drop::mnoznik}+1))%:
                if type of loop-value is not chest:
                    give loop-value to player
                    add {@xp} xp to player
                    if {drop::wiadomosc::%player%} is "&2Wlaczony":
                        set {_1} to "%loop-value%"
                        send "&8» &7Wydropiles %Freplacelang({_1})%! &8( &a+ &2&o{@xp}xp &8)"
                        
                else:
                    give player chest named "{@premiumcase-nazwa}"
                    if {drop::wiadomosc::%player%} is "&2Wlaczony":
                        send "&8» &7Wydropiles &c&lPremiumCase&7! &8( &a+ &2&o{@xp}xp &8)"
variables:
    {drop::mnoznik} = 0

 

 

 

Autor jest otwarty na zgłaszanie błędów i chętnie je naprawi.

W przyszłości autor planuje rozwinięcie skryptu o funkcje takie jak prywatny turbo drop, casy czy sklep za itemy.


 

Odnośnik do komentarza

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności