Skocz do zawartości
  • 0

Pisanie


gnomq

Pytanie

już kiedyś prosiłem o napisanie takiego skryptu, ale niestety nie działał.

jeśli napiszę na czacie 'XD', to będzie miał kolor '&aXD', ale dalej będę pisał w kolorze, który jest przypisany do danej rangi, a nie na biało

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/
Udostępnij na innych stronach

16 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
8 minut temu, gnomq napisał:

już kiedyś prosiłem o napisanie takiego skryptu, ale niestety nie działał.

jeśli napiszę na czacie 'XD', to będzie miał kolor '&aXD', ale dalej będę pisał w kolorze, który jest przypisany do danej rangi, a nie na biało

Tak jak mówiłem, musisz przechwycić kolor od wiadomości do zmiennej, a później użyć go po "&aXD", przykład:

on chat:
	if message doesn't contain "XD":
		stop
	set {_c} to first 2 characters of message
	replace all "XD" with colored "&aXD%{_c}%" in message

 

7 minut temu, Gabi145 napisał:

To musisz dać chyba '&r'.

To nic nie da, gdyż '&r' odpowiada za usuwanie wszelkiego formatowania tekstu (kolor, pogrubienie, kursywa, podkreślenie itd.).

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261667
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Tak jak mówiłem, musisz przechwycić kolor od wiadomości do zmiennej, a później użyć go po "&aXD", przykład:


on chat:
	if message doesn't contain "XD":
		stop
	set {_c} to first 2 characters of message
	replace all "XD" with colored "&aXD%{_c}%" in message

 

To nic nie da, gdyż '&r' odpowiada za usuwanie wszelkiego formatowania tekstu (kolor, pogrubienie, kursywa, podkreślenie itd.).

po wpisaniu 'XD' pojawia się dwukrotnie i dalsze zdanie jest całe zielone

Edytowane przez gnomq
Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261669
Udostępnij na innych stronach

  • 0
Teraz, gnomq napisał:

po wpisaniu 'XD' pojawia się dwukrotnie i dalsze zdanie jest całe zielone

W takim razie przechwytywanie koloru z wiadomości nie wchodzi w grę. Może spróbuj:

on chat:
	if player is not op:
		stop
	send "%chat format%" to player

Całkiem możliwe, że chat format będzie zawierał kolor i z niego będzie można go przechwycić.

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261670
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

W takim razie przechwytywanie koloru z wiadomości nie wchodzi w grę. Może spróbuj:


on chat:
	if player is not op:
		stop
	send "%chat format%" to player

Całkiem możliwe, że chat format będzie zawierał kolor i z niego będzie można go przechwycić.

image.png.d23dfd52bd0a2fb66212201660d46693.png

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261671
Udostępnij na innych stronach

  • 0
5 minut temu, gnomq napisał:

image.png.d23dfd52bd0a2fb66212201660d46693.png

Poszukałem na Spigot'cie odpowiedniej metody i znalazłem coś interesującego:

ChatColor.getLastColors(String input);

Oczywiście będzie wymagany dodatek wspierający składnię z Javy, czyli skript-mirror/skript-reflect (raczej polecam ten drugi).

Nie jestem pewien działania tego kodu, nie wiem w jaki sposób zwróci ten kolor.

import:
	org.bukkit.ChatColor

on chat:
	set {_c} to ChatColor.getLastColors(message);
	replace all "XD" with "&aXD%{_c}%" in message

 

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261672
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Poszukałem na Spigot'cie odpowiedniej metody i znalazłem coś interesującego:


ChatColor.getLastColors(String input);

Oczywiście będzie wymagany dodatek wspierający składnię z Javy, czyli skript-mirror/skript-reflect (raczej polecam ten drugi).

Nie jestem pewien działania tego kodu, nie wiem w jaki sposób zwróci ten kolor.


import:
	org.bukkit.ChatColor

on chat:
	set {_c} to ChatColor.getLastColors(message);
	replace all "XD" with "&aXD%{_c}%" in message

 

w nocy przetestuję bo muszę wgrać ten dodatek, ale dzięki i tak

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261673
Udostępnij na innych stronach

  • 0
5 minut temu, gnomq napisał:

w nocy przetestuję bo muszę wgrać ten dodatek, ale dzięki i tak

Do testowania dobrze, abyś użył nieco zmodyfikowanej wersji tego skryptu:

import:
	org.bukkit.ChatColor

on chat:
	if message doesn't contain "XD":
		stop
	if player is not op:
		stop
	set {_c} to ChatColor.getLastColors(message);
	replace all "XD" with "&aXD%{_c}%" in message
	set chat recipients to player

Dzięki temu jeśli będziesz miał w wiadomości "XD", to ty będziesz jedynym odbiorcą twojej wiadomości (innymi słowy nikomu się nie wyświetli twoja wiadomość na czacie).

Jeśli skrypt nie zadziała, sprawdź co zwróci metoda getLastColors():

set {_c} to ChatColor.getLastColors(message);
send "%{_c}%" to player

 

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261674
Udostępnij na innych stronach

  • 0
1 godzinę temu, Kormic napisał:

Do testowania dobrze, abyś użył nieco zmodyfikowanej wersji tego skryptu:


import:
	org.bukkit.ChatColor

on chat:
	if message doesn't contain "XD":
		stop
	if player is not op:
		stop
	set {_c} to ChatColor.getLastColors(message);
	replace all "XD" with "&aXD%{_c}%" in message
	set chat recipients to player

Dzięki temu jeśli będziesz miał w wiadomości "XD", to ty będziesz jedynym odbiorcą twojej wiadomości (innymi słowy nikomu się nie wyświetli twoja wiadomość na czacie).

Jeśli skrypt nie zadziała, sprawdź co zwróci metoda getLastColors():


set {_c} to ChatColor.getLastColors(message);
send "%{_c}%" to player

 

image.png.cea8b1a32c14a24a41ec87f394abe6c4.png\

 

a z tym drugim:

image.png.03ed44deaf706eec37ddc212feec504a.png

Edytowane przez gnomq
Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261684
Udostępnij na innych stronach

  • 0
22 minuty temu, gnomq napisał:

image.png.cea8b1a32c14a24a41ec87f394abe6c4.png\

 

a z tym drugim:

image.png.03ed44deaf706eec37ddc212feec504a.png

Pozwól, że kilka razy uderzę się w głowę.

Dobra, a więc tak. Problem leży w średniku na końcu tej błędnej linijki. Usuń go i będzie dobrze.

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261687
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Pozwól, że kilka razy uderzę się w głowę.

Dobra, a więc tak. Problem leży w średniku na końcu tej błędnej linijki. Usuń go i będzie dobrze.

nie bij się bo jesteś tu potrzebny XD

 

brak błędów, ale nadal wiadomości po 'XD' są zielone :V 

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261688
Udostępnij na innych stronach

  • 0
21 godzin temu, gnomq napisał:

nie bij się bo jesteś tu potrzebny XD

 

brak błędów, ale nadal wiadomości po 'XD' są zielone :V 

Zapomniałem odpowiedzieć w tym wątku. Testowałem z chat formatem ze Skripta i doszedłem do wniosku, że metoda getLastColors() nie jest w stanie przechwycić kolorów ustawionych w chat formacie. U mnie nawet nie zmieniało koloru, a u ciebie zmienia, więc to i tak dużo. No cóż, pomysły mi się skończyły, w klasie ChatColor nie widzę innych pomocnych metod, a Skript ma dość ograniczone możliwości. Może jednak ktoś wpadnie na jakiś pomysł, nie wiem.

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261758
Udostępnij na innych stronach

  • 0
14 minut temu, PanMaruda napisał:

@gnomq ale że w sensie ma podmieniać tylko XD czy wszystkie jego rozwinięcia (XDD, xddddddddd, xDD, Xddddd)?

tylko XD

chociaż jak się da to może i rozwinięcia

Edytowane przez gnomq
Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261781
Udostępnij na innych stronach

  • 0
import:
	org.bukkit.ChatColor
options:
	color: &a
		
function XD_COLOR(message: string) :: string:
	set {_split::*} to {_message} split at ""
	loop {_split::*}:
		if loop-value is "X":
			add (loop-index parsed as integer) to {_start::*}
	loop {_start::*}:
		loop 1000 times:
			if {_split::%loop-value-1 + loop-number%} is "d":
				set {_XD::%loop-value-1%} to (loop-value-1 + loop-number)
			else:
				stop loop
	loop {_XD::*}:
		set {_} to subtext of {_message} from character ({_lastIndex} ? 0) to character (loop-index parsed as integer) - 1
		set {_lastColor} to ChatColor.getLastColors({_})
		add {_} to {_join::*}
		set {_} to subtext of {_message} from character (loop-index parsed as integer) to character (loop-value)
		add "{@color}%{_}%%{_lastColor}%" to {_join::*}
		set {_lastIndex} to (loop-value + (length of {_lastColor}))
		
	set {_msg} to join {_join::*} with "" where [{_join::*} is set]
	return {_msg} ? {_message}

on chat:
	set message to XD_COLOR(message)

ostatnia linijka dajesz albo message, albo chat format zależnie co ci zadziała (zależnie jak ustawiasz format chatu)

Odnośnik do komentarza
https://skript.pl/temat/41753-pisanie/#findComment-261784
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ę...