gnomq 223 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 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 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#18026 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 (edytowane) - Edytowane 20 marca 2024 przez Gabi145 - Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261666 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 (edytowane) 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 22 września 2020 przez Kormic gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261667 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 10 minut temu, Gabi145 napisał: To musisz dać chyba '&r'. '&r' czyści kolor, więc będzie biały tekst Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261668 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 (edytowane) 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 22 września 2020 przez gnomq Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261669 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 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ć. gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261670 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 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ć. Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261671 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 5 minut temu, gnomq 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 gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261672 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 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 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261673 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 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 gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261674 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 (edytowane) 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 \ a z tym drugim: Edytowane 22 września 2020 przez gnomq Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261684 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 22 września 2020 Udostępnij Opublikowano 22 września 2020 22 minuty temu, gnomq napisał: \ a z tym drugim: 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. Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261687 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 22 września 2020 Autor Udostępnij Opublikowano 22 września 2020 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 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261688 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 23 września 2020 Udostępnij Opublikowano 23 września 2020 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. gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261758 Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanMaruda 624 Opublikowano 24 września 2020 Udostępnij Opublikowano 24 września 2020 @gnomq ale że w sensie ma podmieniać tylko XD czy wszystkie jego rozwinięcia (XDD, xddddddddd, xDD, Xddddd)? Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261780 Udostępnij na innych stronach Więcej opcji udostępniania...
0 gnomq 223 Opublikowano 24 września 2020 Autor Udostępnij Opublikowano 24 września 2020 (edytowane) 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 24 września 2020 przez gnomq Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261781 Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanMaruda 624 Opublikowano 24 września 2020 Udostępnij Opublikowano 24 września 2020 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) Cytuj Odnośnik do komentarza https://skript.pl/temat/41753-pisanie/#findComment-261784 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
gnomq 223
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
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ą.