Skocz do zawartości
  • 0

lore itemu custom damage


Pytanie

Czy wie ktoś może dlaczego skrypt działa tylko gdy podana fraza jest w 1 linijce lore, inaczej damage nie zmienia się.

on damage:
	set {_l} to uncoloured lore of attacker's tool
	if "%{_l}%" contains "Srednie obrazenia: ":
		replace all "Srednie obrazenia: " with "" in {_l}
		replace all "%%" with "" in {_l}
		set {_lore::*} to {_l}
		set {_dodatdmg} to "%{_lore::*}%" parsed as integer
		set {_dmg3} to damage * ({_dodatdmg} / 100)
		set damage to damage + {_dmg3}

Gdy dodam np. linijke przerwy lub jakiś tekst przed "Srednie obrazenia: ...% " to damage nie zmienia się a powinien być o podany procent większy.

Proszę o pomoc.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/
Udostępnij na innych stronach

15 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, xXx_Skrypter_xXx napisał:

Czy wie ktoś może dlaczego skrypt działa tylko gdy podana fraza jest w 1 linijce lore, inaczej damage nie zmienia się.


on damage:
	set {_l} to uncoloured lore of attacker's tool
	if "%{_l}%" contains "Srednie obrazenia: ":
		replace all "Srednie obrazenia: " with "" in {_l}
		replace all "%%" with "" in {_l}
		set {_lore::*} to {_l}
		set {_dodatdmg} to "%{_lore::*}%" parsed as integer
		set {_dmg3} to damage * ({_dodatdmg} / 100)
		set damage to damage + {_dmg3}

Gdy dodam np. linijke przerwy lub jakiś tekst przed "Srednie obrazenia: ...% " to damage nie zmienia się a powinien być o podany procent większy.

Proszę o pomoc.

Lore właściwie jest listą i podejrzewam, że w tym leży błąd, więc powinieneś to zrobić w ten sposób:

set {_l::*} to uncoloured lore of attacker's tool
if {_l::*} contains "Srednie obrazenia: ":

Więc musisz zamienić to i np. loopować tę listę i sprawdzać, czy dana linijka lore zawiera odpowiedni tekst.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260362
Udostępnij na innych stronach

  • 0
9 minut temu, Kormic napisał:

Lore właściwie jest listą i podejrzewam, że w tym leży błąd, więc powinieneś to zrobić w ten sposób:


set {_l::*} to uncoloured lore of attacker's tool
if {_l::*} contains "Srednie obrazenia: ":

Więc musisz zamienić to i np. loopować tę listę i sprawdzać, czy dana linijka lore zawiera odpowiedni tekst.

Mógłbyś pokazać na moim kodzie jakbyś to zrobił? Bo nie za bardzo wiem jak to zrobić. Byłbym wdzięczny

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260365
Udostępnij na innych stronach

  • 0
3 minuty temu, xXx_Skrypter_xXx napisał:

Mógłbyś pokazać na moim kodzie jakbyś to zrobił? Bo nie za bardzo wiem jak to zrobić. Byłbym wdzięczny

Nie wiem czy aby przypadkiem nie pogubiłem się w zmiennych, ale raczej powinno działać. Przy replace'owaniu użyłem tego, co miałeś w kodzie.

on damage:
	set {_l::*} to uncoloured lore of attacker's tool
	loop {_l::*}:
		add 1 to {_int}
		if {_l::%{_int}%} contains "Srednie obrazenia: ":
			replace all "Srednie obrazenia: " with "" in {_l::%{_int}%}
			replace all "%%" with "" in {_l::%{_int}%}
			set {_dodatdmg} to "%{_l::%{_int}%}%" parsed as integer
			set {_dmg3} to damage * ({_dodatdmg} / 100)
			set damage to damage + {_dmg3}

 

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260366
Udostępnij na innych stronach

  • 0
5 minut temu, Kormic napisał:

Nie wiem czy aby przypadkiem nie pogubiłem się w zmiennych, ale raczej powinno działać. Przy replace'owaniu użyłem tego, co miałeś w kodzie.


on damage:
	set {_l::*} to uncoloured lore of attacker's tool
	loop {_l::*}:
		add 1 to {_int}
		if {_l::%{_int}%} contains "Srednie obrazenia: ":
			replace all "Srednie obrazenia: " with "" in {_l::%{_int}%}
			replace all "%%" with "" in {_l::%{_int}%}
			set {_dodatdmg} to "%{_l::%{_int}%}%" parsed as integer
			set {_dmg3} to damage * ({_dodatdmg} / 100)
			set damage to damage + {_dmg3}

 

Nie ma żadnych błędów, działa, ale znowu tylko gdy jest w pierwszej linijce lore.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260367
Udostępnij na innych stronach

  • 1
4 minuty temu, xXx_Skrypter_xXx napisał:

Nie ma żadnych błędów, działa, ale znowu tylko gdy jest w pierwszej linijce lore.

Weź zwykły miecz, uderz jakiegoś moba i zobacz. Powinien ustawić ci się lore w drugiej linijce, od razu mówię, że u mnie to działa.

on damage:
	set line 2 of lore of attacker's tool to "&bSrednie obrazenia: &650%%"
	send "&6Zadales &a%damage% &6obrazen!" to attacker
	set {_l::*} to uncoloured lore of attacker's tool
	loop {_l::*}:
		add 1 to {_int}
		if {_l::%{_int}%} contains "Srednie obrazenia: ":
			replace all "Srednie obrazenia: " with "" in {_l::%{_int}%}
			replace all "%%" with "" in {_l::%{_int}%}
			set {_dodatdmg} to "%{_l::%{_int}%}%" parsed as integer
			set {_dmg3} to damage * ({_dodatdmg} / 100)
			set damage to damage + {_dmg3}
			send "&6Zadales &a%damage% &6obrazen!" to attacker

 

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260368
Udostępnij na innych stronach

  • 0

U mni

4 minuty temu, Kormic napisał:

Weź zwykły miecz, uderz jakiegoś moba i zobacz. Powinien ustawić ci się lore w drugiej linijce, od razu mówię, że u mnie to działa.


on damage:
	set line 2 of lore of attacker's tool to "&bSrednie obrazenia: &650%%"
	send "&6Zadales &a%damage% &6obrazen!" to attacker
	set {_l::*} to uncoloured lore of attacker's tool
	loop {_l::*}:
		add 1 to {_int}
		if {_l::%{_int}%} contains "Srednie obrazenia: ":
			replace all "Srednie obrazenia: " with "" in {_l::%{_int}%}
			replace all "%%" with "" in {_l::%{_int}%}
			set {_dodatdmg} to "%{_l::%{_int}%}%" parsed as integer
			set {_dmg3} to damage * ({_dodatdmg} / 100)
			set damage to damage + {_dmg3}
			send "&6Zadales &a%damage% &6obrazen!" to attacker

 

U mnie zupełnie nic to nie zmienia, testowałem miecz z lore i bez ,ale damage się nie zmienia.

Dodam, że używam wersji skrypta 2.2-dev13 , wersja serwera spigot 1.9.2

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260370
Udostępnij na innych stronach

  • 0
Teraz, xXx_Skrypter_xXx napisał:

U mni

U mnie zupełnie nic to nie zmienia, testowałem miecz z lore i bez ,ale damage się nie zmienia.

Dodam, że używam wersji skrypta 2.2-dev13 , wersja serwera spigot 1.9.2

Hmm... dość stary Skript. Skoro masz Spigota 1.9+ to to zmienia całkowicie stan rzeczy. Użyj Skripta 2.4.1.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260371
Udostępnij na innych stronach

  • 0

Po wgraniu nowej wersji skripta, skrypty nie wywalają błędów, ale żaden nie działa :P

 

16 godzin temu, Kormic napisał:

Hmm... dość stary Skript. Skoro masz Spigota 1.9+ to to zmienia całkowicie stan rzeczy. Użyj Skripta 2.4.1.

Może jest potrzebny jakiś dodatek do skripta?

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260388
Udostępnij na innych stronach

  • 0
25 minut temu, xXx_Skrypter_xXx napisał:

Po wgraniu nowej wersji skripta, skrypty nie wywalają błędów, ale żaden nie działa :P

Żaden? Nie ma przypadkiem błędów w konsoli? Co się dzieje podczas przeładowywania skryptów?

Teraz, xXx_Skrypter_xXx napisał:

Może jest potrzebny jakiś dodatek do skripta?

Nie, wystarczy sam Skript.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260403
Udostępnij na innych stronach

  • 0
6 minut temu, Kormic napisał:

Żaden? Nie ma przypadkiem błędów w konsoli? Co się dzieje podczas przeładowywania skryptów?

Nie, wystarczy sam Skript.

W konsoli Skript wyrzuca mi błąd:

[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! [Skript] Severe Error:
[22:58:29] [Server thread/ERROR]: #!#! TuSKe's class com.github.tukenuke.tuske.effects.EffMakeDrop generated an exception while loading
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Something went horribly wrong with Skript.
[22:58:29] [Server thread/ERROR]: #!#! This issue is NOT your fault! You probably can't fix it yourself, either.
[22:58:29] [Server thread/ERROR]: #!#! It looks like you are using some plugin(s) that alter how Skript works (addons).
[22:58:29] [Server thread/ERROR]: #!#! Following plugins are probably related to this error in some way:
[22:58:29] [Server thread/ERROR]: #!#! TuSKe (github.com/Tuke-Nuke/TuSKe) 
[22:58:29] [Server thread/ERROR]: #!#! You should try disabling those plugins one by one, trying to find which one causes it.
[22:58:29] [Server thread/ERROR]: #!#! If the error doesn't disappear even after disabling all listed plugins, it is probably Skript issue.
[22:58:29] [Server thread/ERROR]: #!#! In that case, you will be given instruction on how should you report it.
[22:58:29] [Server thread/ERROR]: #!#! On the other hand, if the error disappears when disabling some plugin, report it to author of that plugin.
[22:58:29] [Server thread/ERROR]: #!#! Only if the author tells you to do so, report it to Skript's issue tracker.
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Stack trace:
[22:58:29] [Server thread/ERROR]: #!#! java.lang.NullPointerException
[22:58:29] [Server thread/ERROR]: #!#!     at com.github.tukenuke.tuske.effects.EffMakeDrop.<clinit>(EffMakeDrop.java:25)
[22:58:29] [Server thread/ERROR]: #!#!     at java.lang.Class.forName0(Native Method)
[22:58:29] [Server thread/ERROR]: #!#!     at java.lang.Class.forName(Unknown Source)
[22:58:29] [Server thread/ERROR]: #!#!     at ch.njol.skript.SkriptAddon.loadClasses(SkriptAddon.java:108)
[22:58:29] [Server thread/ERROR]: #!#!     at com.github.tukenuke.tuske.TuSKe.onEnable(TuSKe.java:100)
[22:58:29] [Server thread/ERROR]: #!#!     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292)
[22:58:29] [Server thread/ERROR]: #!#!     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
[22:58:29] [Server thread/ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
[22:58:29] [Server thread/ERROR]: #!#!     at org.bukkit.craftbukkit.v1_9_R1.CraftServer.loadPlugin(CraftServer.java:361)
[22:58:29] [Server thread/ERROR]: #!#!     at org.bukkit.craftbukkit.v1_9_R1.CraftServer.enablePlugins(CraftServer.java:321)
[22:58:29] [Server thread/ERROR]: #!#!     at net.minecraft.server.v1_9_R1.MinecraftServer.t(MinecraftServer.java:411)
[22:58:29] [Server thread/ERROR]: #!#!     at net.minecraft.server.v1_9_R1.MinecraftServer.l(MinecraftServer.java:376)
[22:58:29] [Server thread/ERROR]: #!#!     at net.minecraft.server.v1_9_R1.MinecraftServer.a(MinecraftServer.java:331)
[22:58:29] [Server thread/ERROR]: #!#!     at net.minecraft.server.v1_9_R1.DedicatedServer.init(DedicatedServer.java:269)
[22:58:29] [Server thread/ERROR]: #!#!     at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:527)
[22:58:29] [Server thread/ERROR]: #!#!     at java.lang.Thread.run(Unknown Source)
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Version Information:
[22:58:29] [Server thread/ERROR]: #!#!   Skript: 2.4.1 (latest)
[22:58:29] [Server thread/ERROR]: #!#!     Flavor: skriptlang-github
[22:58:29] [Server thread/ERROR]: #!#!     Date: 2019-12-22
[22:58:29] [Server thread/ERROR]: #!#!   Bukkit: 1.9.2-R0.1-SNAPSHOT
[22:58:29] [Server thread/ERROR]: #!#!   Minecraft: 1.9.2
[22:58:29] [Server thread/ERROR]: #!#!   Java: 1.8.0_261 (Java HotSpot(TM) 64-Bit Server VM 25.261-b12)
[22:58:29] [Server thread/ERROR]: #!#!   OS: Windows 10 amd64 10.0
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Server platform: Spigot
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Current node: null
[22:58:29] [Server thread/ERROR]: #!#! Current item: null
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Thread: Server thread
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! Language: english
[22:58:29] [Server thread/ERROR]: #!#! Link parse mode: DISABLED
[22:58:29] [Server thread/ERROR]: #!#! 
[22:58:29] [Server thread/ERROR]: #!#! End of Error.
[22:58:29] [Server thread/ERROR]: #!#! 

 

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260405
Udostępnij na innych stronach

  • 0
Teraz, xXx_Skrypter_xXx napisał:

W konsoli Skript wyrzuca mi błąd:

Z tego co widzę to TuSKe jest winowajcą. Zatrzymaj serwer, wywal je na chwilę, włącz ponownie bez TuSKe i sprawdź skrypty.

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260406
Udostępnij na innych stronach

  • 0
14 godzin temu, Kormic napisał:

Z tego co widzę to TuSKe jest winowajcą. Zatrzymaj serwer, wywal je na chwilę, włącz ponownie bez TuSKe i sprawdź skrypty.

Teraz po przeładowaniu skryptów ,skript wyrzucił 721 błędów.

Przy okazji musiałem wyrzucić wszystkie dodatki do skripta bo i z nimi było to samo co z Tuske

 

@Kormic

Na stronie skripta jest napisane, że ta wersja obsługuje tylko ostatnie patche od danej wersji, a ostatni patch do 1.9 to jest 1.9.4 nie wiem, ale może w tym rzecz.

Edytowane przez xXx_Skrypter_xXx
Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260409
Udostępnij na innych stronach

  • 0
Teraz, xXx_Skrypter_xXx napisał:

@Kormic

Na stronie skripta jest napisane, że ta wersja obsługuje tylko ostatnie patche od danej wersji, a ostatni patch do 1.9 to jest 1.9.4 nie wiem, ale może w tym rzecz.

Faktycznie, to może być w tym rzecz. Jedyne co mogę ci zaproponować to próba schodzenia z wersją Skripta w dół aż nie znajdziesz odpowiedniej.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-260416
Udostępnij na innych stronach

  • 0
W dniu 11.09.2020 o 21:02, Kormic napisał:

Weź zwykły miecz, uderz jakiegoś moba i zobacz. Powinien ustawić ci się lore w drugiej linijce, od razu mówię, że u mnie to działa.

on damage:
	set line 2 of lore of attacker's tool to "&bSrednie obrazenia: &650%%"
	send "&6Zadales &a%damage% &6obrazen!" to attacker
	set {_l::*} to uncoloured lore of attacker's tool
	loop {_l::*}:
		add 1 to {_int}
		if {_l::%{_int}%} contains "Srednie obrazenia: ":
			replace all "Srednie obrazenia: " with "" in {_l::%{_int}%}
			replace all "%%" with "" in {_l::%{_int}%}
			set {_dodatdmg} to "%{_l::%{_int}%}%" parsed as integer
			set {_dmg3} to damage * ({_dodatdmg} / 100)
			set damage to damage + {_dmg3}
			send "&6Zadales &a%damage% &6obrazen!" to attacker

 

Ogólnie nie wiem dlaczego ale po zmianie lore efekt niewchodzi więcej, aczkolwiek dziękuję ci za odpowiadanie pod tym tematem, dzięki tobie stworzyłem skrypt czytający X dmg z lore, dodatkowo bonus rodem z metina w postaci % Obrażeń ogólnych, :D 

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-313359
Udostępnij na innych stronach

  • 0
W dniu 11.09.2020 o 23:29, Kormic napisał:

Faktycznie, to może być w tym rzecz. Jedyne co mogę ci zaproponować to próba schodzenia z wersją Skripta w dół aż nie znajdziesz odpowiedniej.

" Jedyne co mogę ci zaproponować to próba schodzenia z wersją Skripta w dół aż nie znajdziesz odpowiedniej. " Odrazu powiem, działa na najnowszej wersji skript, problem musi leżeć gdzie indziej

 

Odnośnik do komentarza
https://skript.pl/temat/41576-lore-itemu-custom-damage/#findComment-313360
Udostępnij na innych stronach

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

Nieaktywny
Odpowiedz na pytanie...

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

  • Ostatnio przeglądający   0 użytkowników

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