options: # ################################### # # LEVELS # # ################################### # author: MatiX119 version: 1.13.3 # ZAKAZ EDYTOWANIA TYCH INFORMACJI!!! # # ################################### # # ###################################################################### # # Oficjalna strona skryptu: # # http://www.matix119.esy.es/skrypty/levels.html # # Ważne zasady użytkowania skryptu: # # http://www.matix119.esy.es/skrypty/zasady-uzytkowania-skryptow.html # # ###################################################################### # # ####################################################################################### # # JAK DAWAĆ EXPA ZA WYKONANIE OKREŚLONEJ CZYNNOŚCI ? # # Umieść w swoim oddzielnym skrypcie linijkę, która będzie wywoływać komendę: # # execute console command "/exp-give [-s] [-n] [-c]" # # UWAGA: do tego celu musisz mieć opanowaną podstawową znajomość Skripta! # # # # ####################################################################################### # # ####################################################################################### # # USTAWIENIA # # # # Ustaw tryb ustawiania progu maksymalnego expa w zależności od poziomu u graczy: # # 1 (AUTOMATYCZNIE) = maks. exp będzie ustawiany za pomocą działania matematycznego. # # 2 (RĘCZNIE) = maksymalny exp będzie ustawiany ręcznie indywidualnie dla każdego # # poziomu. Ustawienia te znajdziesz na samym dole kodu skryptu! # max-exp-mode: 2 # # # Maksymalny level, który można zdobyć. W zależności od powyższego ustawienia: # # - Jeśli MAX-EXP-MODE: 1, to możesz zrobić "nieskończony" level podając np 1000. # # - Jeśli MAX-EXP-MODE: 2, to lepiej ograniczyć level, aby nie przesadzić (np 30, 50, # # 100). To ustawienie wiąże się z ustawieniem na samym dole skryptu! UWAGA: zmniej- # # szenie max levela skutkuje cofnięciem leveli u graczy, którzy zdobyli większy. # max-lvl: 50 # # # [Jeśli MAX-EXP-MODE: 1] Skonstruuj własne działanie matematyczne, które będzie # # przydzielało maksymalny exp w zależności od poziomu. OBJAŚNIENIA: # # - {_lvl} - zmienna z informacją o poziomie gracza. # # - {_maxexp} - zmienna z informacją o bieżącym maksymalnym expie gracza. # # - "+" "-" "*" "/" "(" ")" - operatory do działania matematycznego. # max-exp-math: 100+({_lvl}-1)*150 # # # [Jeśli MAX-EXP-MODE: 1] Czy maksymalny exp z powyższego działania ma być zaokrąglany? # # Zalecane w przypadku, jeśli działanie matematyczne będzie ustawiać maksymalny exp # # z liczbami po przecinku (typu 2530.66). # max-exp-math-rounding: false # # # Ustaw funkcję przydzielania expa podczas zdobycia awansu na kolejny poziom: # # 1 = Reszta expa przechodzi na kolejny poziom. Dodatkowo zapewnione jest wsparcie, # # podczas gdy gracz wbije o 2 lub więcej poziomów. Zalecane ustawienie. # # 2 = Exp zostaje wyzerowany. Niezależnie od ilości zdobytego expa, poziom można # # zwiększyć tylko o 1. # large-exp-mode: 1 # # # Ustaw najważniejsze wiadomości wyświetlane na czacie. Staraj się nie ruszać # # zmiennych. Resztę wiadomości można ustawić niżej w kodzie skryptu. # msg-no-perm: &4Nie masz dostępu do tej komendy. msg-not-found: &4Nie odnaleziono gracza. msg-lvl-set: &7[&8Lvl %{_p}%&7] &aUstawiono na: &e%{lv::%{_p}%}% &6[&c%{xp::%{_p}%}%&9/&3%{mxp::%{_p}%}%&6] msg-lvl-set-prev: &7[&8Lvl %{_p}%&7] &8Poprzednio: &7%{_lv::%{_p}%}% &8[&7%{_xp::%{_p}%}%&8/&7%{_mxp::%{_p}%}%&8] msg-exp: &7[&8%{_exp}%&7] %{_znak}%%{_ilosc}% &6[&c%{xp::%{_p}%}%&9/&3%{mxp::%{_p}%}%&6] msg-exp-other: &7[&8%{_exp}% %{_p}%&7] %{_znak}%%{_ilosc}% &6[&c%{xp::%{_p}%}%&9/&3%{mxp::%{_p}%}%&6] &2Poziom: &e%{lv::%{_p}%}% msg-lvl-up: &6&lGratulacje, wlasnie zdobyles &6&l%{lv::%{_p}%}% &6&lpoziom! msg-lvl-change: &5&lTwój poziom został zmieniony na: &6&l%{lv::%{_p}%}%&5&l msg-lvl-up-bc: &2%{_p}% awansował na &6&l%{lv::%{_p}%}% &2poziom! msg-doubleexp-warn-on: &eFunkcja %{_exp}% teraz jest &aaktywna&e. msg-doubleexp-warn-off: &eFunkcja %{_exp}% teraz jest &cnieaktywna&e. msg-doubleexp-on: &7&l%{_exp}% &7został &aaktywowany&7! msg-doubleexp-off: &7&l%{_exp}% &7został &czdezaktywowany&7! # # # [Ustawienie odwołuje do opcji MSG-EXP i MSG-EXP-OTHER] Ustaw formatowanie znaków "+" # # i "-" dla zmiennej {_znak} w zależności czy exp został dodany lub zabrany u gracza. # # UWAGA: dla expa ujemnego nie ma konieczności wpisywania "-" bo jest już wyświetlany! # exp-give-plus: &2+ exp-give-minus: &4 # # # [Ustawienie odwołuje do opcji MSG-EXP] Ustaw nazwy prefiksów trybu mnożnika expa dla # # zmiennej {_exp}. # prefix-exp: Exp prefix-doubleexp: DoubleExp prefix-tripleexp: TripleExp # # # Czy administracja po wejściu na serwer ma być informowana o włączonym DoubleExpie? # doubleexp-warn: true # # # Czy wszyscy gracze mają być informowani o aktywowanym lub dezaktywowanym DoubleExpie? # doubleexp-bc: false # # # Ustaw, czy TripleExp ma być aktywowany u gracza, jeśli gracz posiada indywidualnego # # DoubleExpa oraz DoubleExp globalny jest włączony. # allow-tripleexp: false # # # Czy ma być wyświetlana wiadomość do wszystkich graczy, jeśli gracz osiągnął wyróż- # # niony poziom? Wskaż, które poziomy mają być wyróżniane. Zamiast przecinka użyj "or". # broadcast-lvlup: true distinction-levels: 10 or 20 or 30 or 40 or 50 # # # Czy po zdobyciu kolejnego poziomu ma być użyty efekt (nieszkodliwego) pioruna? # lvlup-lighting-effect: true # # # Ustaw ograniczenie dla komendy /exp-give dotyczące maksymalnej liczby expa. # max-exp-give-limit: 1000000 # # # Ustaw maksymalny ujemny exp wpisując liczbę mniejszą niż 0 (np. -100). Wartość 0 # # (domyślnie) wyłącza tą funkcjonalność. Ta funkcja może nieco zwiększyć trudność # # zdobywania expa, jeśli decydujesz się na zabieranie expa za np. przegranie walki. # max-negative-exp: 0 # # # Ustaw, czy DoubleExp ma podwajać także expa ujemnego. Jeśli tak, to może zwiększyć # # trudność zdobywania expa, choć jest równowaga, jeśli gracz zdobywa też dodatni exp. # doubleexp-negative-exp: false # # # Ustaw, czy exp ma być zaokrąglany podczas przydzielania dla gracza. # exp-rounding: false # # # Czy Minecraftowy pasek poziomu ma wskazywać poziom oraz exp ze skryptu? Zalecane # # ustawienie, jeśli na twoim serwerze nie funkcjonują zielone kulki expa. UWAGA: włą- # # czenie ustawienia spowoduje utratę Minecraftowego levela u wszystkich graczy! # use-levels-bar: true # # # [Jeśli USE-LEVELS-BAR: true] Czy dropienie zielonych kulek expa ma być wyłączone? Czy # # używanie enchantu i kowadła ma być zablokowane? Nie dotyczy to trybu gry creative. # disable-xp-orb: true disable-enchant: true disable-anvil: true # # # Czy formatowanie nicków na TAB liście ma być używane? Ustaw także formatowanie. # # UWAGA: W starszych wersjach MC występuje ograniczenie znaków do 16! # tab-list-nick-enabled: false tab-list-nick-format: &8[&7%{lv::%player-arg%}%&8] &r # # # Czy formatowanie nicku nad głową graczy ma być używane? Ustaw także formatowanie. # # UWAGA: domyślnie ta funkcja jest zablokowana, ponieważ wymaga dodatku WildSkript, a # # następnie odblokowania wyłączonych linijek w kodzie w wyznaczonym miejscu! # # UWAGA: W starszych wersjach MC występuje ograniczenie znaków do 16! # head-nick-enabled: false head-nick-format: &8[&7%{lv::%player-arg%}%&8] &r # # # Ustaw, czy level ma być wyświetlany nad głową graczy, ale w linijce pod nazwą gracza. # # UWAGA: ta funkcja wykorzystuje funkcję scoreboard z Minecrafta, więc level może nie # # być od razu wyświetlany. W celu prawidłowego działania nicki graczy muszą być odświe- # # żane dzięki funkcji dostępnej z pod opcji HEAD-NICK-ENABLED (niezależnie od wartości # # TRUE lub FALSE), która wymaga WildSkript. Ustaw także skrót, który będzie oznaczał # # poziom - kolory nieobsługiwane! UWAGA: jeśli zmieniasz nazwę tego skrótu, to przełącz # # opcję na FALSE (restart) i ponownie na TRUE (restart) w celu zastosowania zmian! # # UWAGA: ta funkcja może stwarzać spam w konsoli w zależności od ilości graczy!!! # head-level-enabled: false head-level-suffix: Lvl # # # Ustaw co ile sekund nicki nad głową gracza i na TAB liście mają być odświeżane. # nick-refresh: 1 # # # Ustaw, czy chcesz używać formatowania czatu ze skryptu (umożliwiające wyświetlanie # # levela obok nicku)? Dodatkowo należy ustawić formatowania czatu poniżej. # use-Levels-chat: true # # # Ustaw format czatu, aby level był wyświetlany obok nicku ze zmiennej {lvl::%player%}. # # Ustaw dla każdej z rang formatowanie czatu, a także nadaj uprawnienie, które wykorzy- # # stasz w pluginie na uprawniena (np. PermissionsEx). UWAGA: proszę nadawać priorytet # # rangi definiując w kolejności rosnącej - do najwyższego stopnia (admin). Jeśli gracz # # posiada wiele rang, to ma przydzielany format czatu z rangi o wyższym priorytecie. # # * GRUPA 1 [Zwykli gracze, którzy nie potrzebują dodatkowych uprawnień] # chat-default: &8[&2&oLvl. %{lv::%player%}%&8] %colored display name of player% &f%player% &f%{_message}% # * GRUPA 2 # chat-group-2: &8[&7%{lv::%player%}%&8] &f<&b[VIP] &f%player%> &f%{_message}% permission-group-2: vip # * GRUPA 3 # chat-group-3: &8[&7%{lv::%player%}%&8] &f<&6[SuperVIP] &f%player%> &f%{_message}% permission-group-3: supervip # * GRUPA 4 # chat-group-4: &8[&7%{lv::%player%}%&8] &f<&9[Budowniczy] &f%player%> &f%{_message}% permission-group-4: budowniczy # * GRUPA 5 # chat-group-5: &8[&7%{lv::%player%}%&8] &f<&c[KidMod] &f%player%> &f%{_message}% permission-group-5: kidmod # * GRUPA 6 # chat-group-6: &8[&7%{lv::%player%}%&8] &f<&c[Moderator] &f%player%> &f%{_message}% permission-group-6: moderator # * GRUPA 7 # chat-group-7: &8[&7%{lv::%player%}%&8] &f<&4[Admin] &f%player%> &f%{_message}% permission-group-7: administrator # * GRUPA 8 # chat-group-8: &8[&7%{lv::%player%}%&8] &f<&7[Ranga] &f%player%> &f%{_message}% permission-group-8: uprawnienie # * GRUPA 9 # chat-group-9: &8[&7%{lv::%player%}%&8] &f<&7[Ranga] &f%player%> &f%{_message}% permission-group-9: uprawnienie # * GRUPA 10 [Domyślnie OP (główni administratorzy), którzy posiadają już uprawnienia] # chat-op: &8[&7%{lv::%player%}%&8] &f<&4[Właściciel] &f%player%> &f%{_message}% # # # Ustaw, jakie rangi mogą używać kolorów. Podaj uprawienia ustawione już wyżej. Główni # # administratorzy (OP) obsługują pisanie kolorem i nie dotyczy ich ta opcja. # allow-use-colors-for-groups: "administrator" or "moderator" # * Czy domyślni gracze (bez uprawnień) mogą używać kolorów? # allow-use-colors-for-default-players: false # * UWAGA: jeśli występuje bug, że kolory nadal działają w wykluczonych rangach, to # # ustaw tą opcję na "true" - wyłącza całkowite używanie znaczka "&". # force-disable-colors: false # # # ####################################################################################### # # ############################# # # Zmienne, czat, zabezpieczenia # # i inne funkcje # # ############################# # # *** RESETOWANIE POSTĘPÓW GRACZY *** # Odblokuj poniższą część kodu, aby zresetować WSZYSTKIE postępy graczy, zrestartuj skrypt, # a następnie zablokuj ten kod i ponownie zrestartuj skrypt. Rekomendowany restart serwera. #on load: # delete {lv::*} # delete {xp::*} # delete {mxp::*} # wait 3 second # execute console command "restart" # ################################################################################## # # OBJAŚNIENIA ZMIENNYCH # # {lv::%player%} - poziom {xp::%player%} - exp {mxp::%player%} - max exp # # ################################################################################## # variables: {doubleexp} = false set {xp::%player%} to 0 set {lv::%player%} to 1 on chat: cancel event broadcast "&8[&2Lvl. %{lv::%player%}%&8] %colored display name of player% &7» &f%colored message%" stop every 10 tick: loop all players: {@use-levels-bar} is true {lv::%loop-player%} is set if loop-player's level progress is not {xp::%loop-player%}/{mxp::%loop-player%}: if {xp::%loop-player%} <= 0: set loop-player's level progress to 0 else: set loop-player's level progress to {xp::%loop-player%}/{mxp::%loop-player%} if loop-player's level is not {lv::%loop-player%}: set the loop-player's level to {lv::%loop-player%} every 3 second: loop all players: if {lv::%loop-player%} is not set: set {xp::%loop-player%} to 0 set {lv::%loop-player%} to 1 execute console command "/maxexpchange %loop-player%" if {lv::%loop-player%} > {@max-lvl}: set {lv::%loop-player%} to {@max-lvl}-1 execute console command "/maxexpchange %loop-player%" set {xp::%loop-player%} to {mxp::%loop-player%} set {lv::%loop-player%} to {@max-lvl} else if {lv::%loop-player%} is not {@max-lvl}: if {xp::%loop-player%} = {mxp::%loop-player%}: set {xp::%loop-player%} to 0 execute console command "/maxexpchange %loop-player%" if {dxppl.%loop-player%} < now: delete {dxppl.%loop-player%} on join: if {lv::%player%} is not set: set {xp::%player%} to 0 set {lv::%player%} to 1 execute console command "/maxexpchange %player%" if {@head-level-enabled} is true: execute console command "/scoreboard players set %player% Levels %{lv::%player%}%" if {@doubleexp-warn} is true: player has permission "admin" wait 1 second {doubleexp} is true set {_exp} to "{@prefix-doubleexp}" send "{@msg-doubleexp-warn-on}" to player on experience spawn: if {@use-levels-bar} is true: if {@disable-xp-orb} is true: cancel event on rightclick: {@use-levels-bar} is true player's gamemode is not creative if {@disable-enchant} is true: if "%id of clicked block%" is "116": cancel event if {@disable-anvil} is true: if "%id of clicked block%" is "145": cancel event on skript start: send "[Skript] Skrypt Levels v{@version} zostal uruchomiony!" to console on skript stop: send "[Skript] Skrypt Levels v{@version} zostal wylaczony!" to console # ############################# # # Level nad głową gracza i # # na TAB liście # # ############################# # every {@nick-refresh} second: loop all players: execute console command "/levels-set-nick %loop-player%" command /levels-set-nick []: executable by: console trigger: if {@tab-list-nick-enabled} is true: set player-arg's tablist name to "{@tab-list-nick-format}%player-arg%" if {@tab-list-nick-enabled} is false: set player-arg's tablist name to "%player-arg%" # Odblokuj ten fragment kodu usuwając "#", jeśli używasz dodatku WildSkript # # if {@head-nick-enabled} is true: # set player-arg's tag to "{@head-nick-format}" # if {@head-nick-enabled} is false: # set player-arg's tag to "" on load: if {@head-level-enabled} is true: execute console command "/gamerule sendCommandFeedback false" execute console command "/scoreboard objectives add Levels dummy {@head-level-suffix}" execute console command "/scoreboard objectives setdisplay belowName Levels" loop all players: execute console command "/scoreboard players set %loop-player% Levels %{lv::%loop-player%}%" if {@head-level-enabled} is false: execute console command "/scoreboard objectives remove Levels" # ############################# # # Spis komend + # # dodatkowe komendy # # ############################# # command /levels [] []: permission: admin permission message: {@msg-no-perm} executable by: console and player trigger: if arg 1 is not set: send "&5&l&m===================&r&5&l[&2&lLevels&5&l]&5&l&m===================" send "&c/poziom [gracz] &9- &3Wyświetla aktualny poziom i postęp expa." send "&c/double-exp [sprawdź] &9- &3Aktywuje/dezaktywuje mnożnik expa x2." send "&c/double-exp-player &9- &3Aktywuje DoubleExpa indywidualnie u gracza." send "&c/level-set [-s] &9- &3Zmienia aktualny poziom gracza. Wpisanie &l-s &3wyłącza informację u docelowego gracza." send "&c/exp-give [-s] [-n] [-c] &9- &3Dodaje expa u gracza. Wpisanie &l-s &3wyłącza informację na czacie, &l-n &3ignoruje DoubleExpa, &l-c &3wymusza wyświetlenie informacji dla konsoli." send "&c/levels reload &9- &3Restartuje system leveli ""Levels""." send "&5&l&m=============================================" else: if arg 1 is "reload" or "restart" or "r": set {_t1} to now execute console command "/skript reload %script%" set {_t2} to now set {_t} to "%difference between {_t1} and {_t2}%" parsed as text replace " seconds" with "s" in {_t} send "&5[&2Levels&5] &7Zrestartowano skrypt (&oczas: %{_t}%&7). Sprawdź konsolę czy nie ma błędów." if arg 1 is not "reload" or "restart" or "r" or "info" or "informacje": if executor is console: execute console command "/levels" if executor is player: execute player command "/levels" # ############################# # # Sprawdzanie aktualnego # # poziomu # # ############################# # command /poziom: aliases: /exp, /stats, /staty, /statystyki, /lvl, /level, /lv executable by: console and player trigger: send "" send "&e&m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" send " &2&oStatystyki gracza: &a%player%" send " &7Poziom: %{lv::%player%}%/100" send " &7Exp: &c%{xp::%player%}%&7/&3%{mxp::%player%}%" send "&e&m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" send "" # ############################# # # Aktywowanie podwójnego expa # # ############################# # command /double-exp []: aliases: /doubleexp, /double permission: admin permission message: {@msg-no-perm} executable by: console and player trigger: set {_exp} to "{@prefix-doubleexp}" if arg 1 is not set: if {doubleexp} is false: set {doubleexp} to true if {@doubleexp-bc} is false: send "{@msg-doubleexp-on}" else: broadcast "{@msg-doubleexp-on}" stop else: set {doubleexp} to false if {@doubleexp-bc} is false: send "{@msg-doubleexp-off}" else: broadcast "{@msg-doubleexp-off}" else: if arg 1 is "sprawdz" or "sprawdź" or "check": if {doubleexp} is false: send "{@msg-doubleexp-warn-off}" else: send "{@msg-doubleexp-warn-on}" else: send "&f/double-exp &c[sprawdź]" # ############################# # # Indywidualny stały lub # # czasowy DoubleExp # # ############################# # command /double-exp-player [] []: aliases: /dxppl, /double-exp-player, /doubleexp-player permission: admin permission message: {@msg-no-perm} executable by: console and player trigger: if arg 1 is not set: send "&f/double-exp-player &c &f" stop set {_p} to arg 1 parsed as offlineplayer if {lv::%{_p}%} is not set: send "{@msg-not-found}" stop if {dxppl.%{_p}%} < now: delete {dxppl.%{_p}%} if arg 2 is not set: send "&f/double-exp-player &c" stop if arg 2 is "on" or "true" or "enable": set {dxppl.%{_p}%} to -1 executor is player send "&aAktywowano indywidualnego DoubleExpa dla %{_p}% na stałe." if arg 2 is "off" or "false" or "disable": if {dxppl.%{_p}%} is set: delete {dxppl.%{_p}%} send "&aZdezaktywowano indywidualnego DoubleExpa dla %{_p}%." else: send "&c%{_p}% nie używa indywidualnego DoubleExpa." if arg 2 is "sprawdz" or "sprawdź" or "check": if {dxppl.%{_p}%} is not set: send "&e%{_p}% nie używa indywidualnego DoubleExpa." else: if {dxppl.%{_p}%} is -1: send "&e%{_p}% ma aktywowanego DoubleExpa na stałe." if {dxppl.%{_p}%} is not -1: send "&e%{_p}% ma aktywowanego DoubleExpa do %{dxppl.%{_p}%}%." if arg 2 is not "on" or "true" or "enable" or "off" or "false" or "disable" or "sprawdz" or "sprawdź" or "check": set {_arg2} to arg 2 parsed as integer if {_arg2} is integer: if {_arg2} is not between 1 and 525600: send "&cPodany czas w minutach musi być w zakresie od 1 do 525600" stop if {dxppl.%{_p}%} is not set: set {dxppl.%{_p}%} to now if {dxppl.%{_p}%} is -1: set {dxppl.%{_p}%} to now set {_time} to "%{_arg2}% minutes" parsed as timespan add {_time} to {dxppl.%{_p}%} send "&aAktywowano indywidualnego DoubleExpa dla %{_p}% do %{dxppl.%{_p}%}%." else: send "&f/double-exp-player &c" # ############################# # # Zmienianie levela # # ############################# # command /level-set [] [] []: aliases: /lvl-set, /lv-set usage: /level-set [-s] permission: admin permission message: {@msg-no-perm} executable by: console and player trigger: if arg 1 is not set: send "&f/level-set &c &f [-s]" stop set {_p} to arg 1 if {lv::%{_p}%} is not set: send "{@msg-not-found}" stop if arg 2 is not set: send "&f/level-set &c &f[-s]" stop set {_i} to arg 2 if {_i} is not between 1 and {@max-lvl}: send "&cPodany level musi być w zakresie od 1 do {@max-lvl}." stop if {dxppl.%{_p}%} < now: delete {dxppl.%{_p}%} set {_lv::%{_p}%} to "%{lv::%{_p}%}%" parsed as text set {_xp::%{_p}%} to {xp::%{_p}%} set {_mxp::%{_p}%} to {mxp::%{_p}%} set {lv::%{_p}%} to {_i} if {lv::%{_p}%} = {@max-lvl}: set {lv::%{_p}%} to {lv::%{_p}%}-1 execute console command "/maxexpchange %{_p}%" set {xp::%{_p}%} to {mxp::%{_p}%} set {lv::%{_p}%} to {@max-lvl} else: execute console command "/maxexpchange %{_p}%" set {xp::%{_p}%} to 0 send "{@msg-lvl-set}" if {_lv::%{_p}%} is not "": send "{@msg-lvl-set-prev}" if {@head-level-enabled} is true: execute console command "/scoreboard players set %{_p}% Levels %{lv::%{_p}%}%" if arg 3 is "-s": stop if executor is player: if player is not {_p}: send "{@msg-lvl-change}" to {_p} if executor is console: send "{@msg-lvl-change}" to {_p} # ############################# # # Dawanie expa + główny # # system leveli # # ############################# # command /exp-give [] [] [] [] []: usage: /exp-give [-s] [-n] [-c] permission: admin permission message: {@msg-no-perm} executable by: console and player trigger: if arg 1 is not set: send "&f/exp-give &c &f [-s] [-n] [-c]" stop set {_p} to arg 1 parsed as offlineplayer if {lv::%{_p}%} is not set: send "{@msg-not-found}" stop if arg 2 is not set: send "&f/exp-give &c &f[-s] [-n] [-c]" stop if arg 2 > {@max-exp-give-limit}: send "&cPodana ilość expa jest zbyt duża." stop if arg 2 < -{@max-exp-give-limit}: send "&cPodana ilość expa jest zbyt duża." stop if {dxppl.%{_p}%} < now: delete {dxppl.%{_p}%} {lv::%{_p}%} < {@max-lvl} set {_arg2} to arg 2 if {@exp-rounding} is true: set {_arg2} to round {_arg2} if {doubleexp} is false: if arg 3 or arg 4 or arg 5 is "-n": set {_x2} to 1 set {_exp} to "{@prefix-exp}" else: set {_x2} to 1 set {_exp} to "{@prefix-exp}" if {dxppl.%{_p}%} is set: set {_x2} to 2 set {_exp} to "{@prefix-doubleexp}" if {doubleexp} is true: if arg 3 or arg 4 or arg 5 is "-n": set {_x2} to 1 set {_exp} to "{@prefix-exp}" else: set {_x2} to 2 set {_exp} to "{@prefix-doubleexp}" if {@allow-tripleexp} is true: if {dxppl.%{_p}%} is set: set {_x2} to 3 set {_exp} to "{@prefix-tripleexp}" if {_arg2} < 0: if {@doubleexp-negative-exp} is false: set {_x2} to 1 set {_exp} to "{@prefix-exp}" set {_prexp::%{_p}%} to {xp::%{_p}%} if {xp::%{_p}%} < {mxp::%{_p}%}: add {_arg2}*{_x2} to {xp::%{_p}%} set {_ilosc} to "%{_arg2}*{_x2}%" if {_arg2} > 0: set {_znak} to "{@exp-give-plus}" if {_arg2} <= 0: set {_znak} to "{@exp-give-minus}" if {xp::%{_p}%} < 0: if {@max-negative-exp} <= 0: if {xp::%{_p}%} < {@max-negative-exp}: if {_prexp::%{_p}%} < {@max-negative-exp}: set {xp::%{_p}%} to {_prexp::%{_p}%} else: set {xp::%{_p}%} to {@max-negative-exp} if {xp::%{_p}%} >= {mxp::%{_p}%}: if {@large-exp-mode} is 1: set {_iloscgl.%{_p}%} to {_ilosc}-{mxp::%{_p}%}-{xp::%{_p}%} add 1 to {lv::%{_p}%} execute console command "/maxexpchange %{_p}%" loop {@max-lvl} times: if {_iloscgl.%{_p}%} >= {mxp::%{_p}%}: set {_iloscgl.%{_p}%} to {_iloscgl.%{_p}%}-{mxp::%{_p}%} add 1 to {lv::%{_p}%} execute console command "/maxexpchange %{_p}%" if {lv::%{_p}%} >= {@max-lvl}: stop loop if {_iloscgl.%{_p}%} < {mxp::%{_p}%}: set {xp::%{_p}%} to {_iloscgl.%{_p}%} stop loop if {@large-exp-mode} is 2: add 1 to {lv::%{_p}%} execute console command "/maxexpchange %{_p}%" if {lv::%{_p}%} >= {@max-lvl}: set {xp::%{_p}%} to {mxp::%{_p}%} set {lv::%{_p}%} to {@max-lvl} else: if {@large-exp-mode} is 2: set {xp::%{_p}%} to 0 send "{@msg-lvl-up}" to {_p} if {@lvlup-lighting-effect} is true: strike lightning effect at {_p} if {@head-level-enabled} is true: execute console command "/scoreboard players set %{_p}% Levels %{lv::%{_p}%}%" if {@broadcast-lvlup} is true: if {lv::%{_p}%} is {@distinction-levels}: loop all players: if {_p} is not loop-player: send "{@msg-lvl-up-bc}" to loop-player if {xp::%{_p}%} is -0: set {xp::%{_p}%} to 0 if executor is player: if player is not {_p}: send "{@msg-exp-other}" if arg 3 or arg 4 or arg 5 is "-c": if executor is console: send "{@msg-exp-other}" if arg 3 or arg 4 or arg 5 is "-s": stop else: send "{@msg-exp}" to {_p} # ############################# # # TEJ KOMENDY NIE WOLNO # # UŻYWAĆ RĘCZNIE!!! # # ############################# # command /maxexpchange []: executable by: console trigger: set {_p} to arg 1 parsed as offlineplayer {lv::%{_p}%} is set if {@max-exp-mode} is 1: set {_lvl} to "%{lv::%{_p}%}%" parsed as integer set {_maxexp} to "%{mxp::%{_p}%}%" parsed as number set {mxp::%{_p}%} to {@max-exp-math} if {@max-exp-math-rounding} is true: set {mxp::%{_p}%} to round {@max-exp-math} stop if {@max-exp-mode} is 2: # ########################################################################### # # # # [Jeśli MAX-EXP-MODE: 2] Tu znajdują się ręczne ustawienia maksymalnego # # expa do następnego levela. Oto przykład: # # Na poziomie 1 do awansu potrzeba 100 expa. # # Na poziomie 2 do awansu potrzeba 250 expa. # # Na poziomie 49 do awansu potrzeba 7300 expa. # # Na poziomie 50 jeśli jest maksymalny [ exp: 7300 / max-exp: 7300 ]. # # # # ########################################################################### # if {lv::%{_p}%} = 1: set {mxp::%{_p}%} to 100 if {lv::%{_p}%} = 2: set {mxp::%{_p}%} to 250 if {lv::%{_p}%} = 3: set {mxp::%{_p}%} to 400 if {lv::%{_p}%} = 4: set {mxp::%{_p}%} to 550 if {lv::%{_p}%} = 5: set {mxp::%{_p}%} to 700 if {lv::%{_p}%} = 6: set {mxp::%{_p}%} to 850 if {lv::%{_p}%} = 7: set {mxp::%{_p}%} to 1000 if {lv::%{_p}%} = 8: set {mxp::%{_p}%} to 1150 if {lv::%{_p}%} = 9: set {mxp::%{_p}%} to 1300 if {lv::%{_p}%} = 10: set {mxp::%{_p}%} to 1450 if {lv::%{_p}%} = 11: set {mxp::%{_p}%} to 1600 if {lv::%{_p}%} = 12: set {mxp::%{_p}%} to 1750 if {lv::%{_p}%} = 13: set {mxp::%{_p}%} to 1900 if {lv::%{_p}%} = 14: set {mxp::%{_p}%} to 2050 if {lv::%{_p}%} = 15: set {mxp::%{_p}%} to 2200 if {lv::%{_p}%} = 16: set {mxp::%{_p}%} to 2350 if {lv::%{_p}%} = 17: set {mxp::%{_p}%} to 2500 if {lv::%{_p}%} = 18: set {mxp::%{_p}%} to 2650 if {lv::%{_p}%} = 19: set {mxp::%{_p}%} to 2800 if {lv::%{_p}%} = 20: set {mxp::%{_p}%} to 2950 if {lv::%{_p}%} = 21: set {mxp::%{_p}%} to 3100 if {lv::%{_p}%} = 22: set {mxp::%{_p}%} to 3250 if {lv::%{_p}%} = 23: set {mxp::%{_p}%} to 3400 if {lv::%{_p}%} = 24: set {mxp::%{_p}%} to 3550 if {lv::%{_p}%} = 25: set {mxp::%{_p}%} to 3700 if {lv::%{_p}%} = 26: set {mxp::%{_p}%} to 3850 if {lv::%{_p}%} = 27: set {mxp::%{_p}%} to 4000 if {lv::%{_p}%} = 28: set {mxp::%{_p}%} to 4150 if {lv::%{_p}%} = 29: set {mxp::%{_p}%} to 4300 if {lv::%{_p}%} = 30: set {mxp::%{_p}%} to 4450 if {lv::%{_p}%} = 31: set {mxp::%{_p}%} to 4600 if {lv::%{_p}%} = 32: set {mxp::%{_p}%} to 4750 if {lv::%{_p}%} = 33: set {mxp::%{_p}%} to 4900 if {lv::%{_p}%} = 34: set {mxp::%{_p}%} to 5050 if {lv::%{_p}%} = 35: set {mxp::%{_p}%} to 5200 if {lv::%{_p}%} = 36: set {mxp::%{_p}%} to 5350 if {lv::%{_p}%} = 37: set {mxp::%{_p}%} to 5500 if {lv::%{_p}%} = 38: set {mxp::%{_p}%} to 5650 if {lv::%{_p}%} = 39: set {mxp::%{_p}%} to 5800 if {lv::%{_p}%} = 40: set {mxp::%{_p}%} to 5950 if {lv::%{_p}%} = 41: set {mxp::%{_p}%} to 6100 if {lv::%{_p}%} = 42: set {mxp::%{_p}%} to 6250 if {lv::%{_p}%} = 43: set {mxp::%{_p}%} to 6400 if {lv::%{_p}%} = 44: set {mxp::%{_p}%} to 6550 if {lv::%{_p}%} = 45: set {mxp::%{_p}%} to 6700 if {lv::%{_p}%} = 46: set {mxp::%{_p}%} to 6850 if {lv::%{_p}%} = 47: set {mxp::%{_p}%} to 7000 if {lv::%{_p}%} = 48: set {mxp::%{_p}%} to 7150 if {lv::%{_p}%} >= 49: set {mxp::%{_p}%} to 7300 # ###################################### # # W razie zmiany ustawienia maksymalnego # # poziomu, to należy dodać lub usunąć # # powyższą część kodu według wzoru. # # UWAGA: ostatnia linijka musi mieć # # znak >= dla niezawodności! # # ###################################### # on death: if victim is a zombie: if name of victim is "&fZombie &6(Poziom 1)": execute console command "/exp-give %attacker% 1.3" if name of victim is "&fZombie &6(Poziom 2)": execute console command "/exp-give %attacker% 3.1" if name of victim is "&fZombie &6(Poziom 3)": execute console command "/exp-give %attacker% 4.7" if name of victim is "&fStraznik Fantazji &6(Lvl. 20)": execute console command "/exp-give %attacker% 20.3" if name of victim is "&fStraznik Fantazji &6(Lvl. 25)": execute console command "/exp-give %attacker% 23.5" if name of victim is "&fStraznik Fantazji &6(Lvl. 30)": execute console command "/exp-give %attacker% 25.2" if victim is a skeleton: if name of victim is "Slaby Lucznik LVL.17": execute console command "/exp-give %attacker% 12" if name of victim is "Niegrozny Lucznik LVL.23": execute console command "/exp-give %attacker% 15" if name of victim is "Szalony Lucznik LVL.28": execute console command "/exp-give %attacker% 22" if victim is a zombie pigman: if name of victim is "Zly Mutant LVL.23": execute console command "/exp-give %attacker% 48" if name of victim is "Wsciekly Mutant LVL.26": execute console command "/exp-give %attacker% 62" if name of victim is "Nieopanowany Mutant LVL.28": execute console command "/exp-give %attacker% 70" if victim is a creeper: if name of victim is "Dziwny Ork LVL.33": execute console command "/exp-give %attacker% 122" if name of victim is "Elitarny Ork LVL.35": execute console command "/exp-give %attacker% 156" if name of victim is "Glupi Ork LVL.39": execute console command "/exp-give %attacker% 175" on join: if {lv::%player%} is not set: set {lv::%player%} to 1