Skocz do zawartości

Edycja czatu


Rekomendowane odpowiedzi

Witajcie! Ponieważ nie jestem dobry w pięknych wstępach itp. przejdę od razu do podstaw. W tym poradniku dowiesz się jak w Skript możesz zarządzać swoim czatem! Jestem pewien, że są miliony innych sposobów na zrobienie tego samego, co ja tutaj napisałem... mimo wszystko postanowiłem wrzucić tu swoją propozycję.

Podstawa

Zacznijmy od dodania zdarzenia "on chat".

on chat:

Aby "oryginalna" wiadomość z chatu nie została wysyłana - zatrzymamy to zdarzenie

on chat:	cancel event

Ok, teraz możemy przejść do edytowania wyglądu wiadomości. Teraz wejdź do konfiguracji pozwoleń i do każdej dodaj jakieś pozwolenie, które będzie określało w jakiej jest grupie. Ja dodam "player", "vip" oraz "admin".

Następnym krokiem będzie podzielenie dodanie do skryptu tych samych pozwoleń.

on chat:	cancel event	if player has permission "gracz":	if player has permission "vip":	if player has permission "admin":

Teraz do każdej grupy możemy dodać odpowiednią formę wiadomości. Aby nie dodawać zbędnych zmiennych zrobimy to na zmiennej lokalnej, czyli takiej, która jest usuwana po zmiennej. Taka zmienna wyróżnia się "podłogą" na samym początku.

on chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[admin] %player%&2: %message%"

Ekspresja "player" określa nick gracza, a "message" - wiadomość, którą wpisał na czacie. Wiadomość administratora będzie wyglądać mniej więcej w ten sposób: [admin] Anemonex: siema!
Pamiętaj, aby nie zapomnieć o żadnej grupie! W innym przypadku gracz z inną rangą nie będzie mógł nic napisać.
Teraz wiadomość musi zostać wysłana, prawda? Dodajmy więc nadanie wiadomości do wszystkich graczy oraz zamknijmy [zatrzymajmy] nasze zdarzenie.

on chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[admin] %player%&2: %message%"	broadcast "%{_chat}%"	stop

Włączanie oraz wyłączanie czatu

Czas na dodatki!
Zacznijmy od włączania/wyłączania czatu. Najpierw dodajmy zmienną, która będzie zmieniać tryb czatu.

variables: 	{chaton} = trueon chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[admin] %player%&2: %message%"	broadcast "%{_chat}%"	stop

Teraz dodajmy do wydarzenia "on chat" warunek, który będzie określał, że wiadomości będą wysyłane jedynie w przypadku gdy zmienna "{chaton}" posiada wartość true. Od razu dopiszmy wydarzenie "else", w którym zawarta będzie informacja, że chat jest wyłączony

variables:	{chaton} = trueon chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[admin] %player%&2: %message%"	if {chaton} is true:		broadcast "%{_chat}%"	else:		send "&7Chat jest wylaczony!"	stop

Najwyższy czas na komendę, która będzie zmieniać tryb chatu. Nie będę opisywał tego krok po kroku, mam nadzieję, że każdy zrozumie ;)

variables:	{chaton} = trueon chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[admin] %player%&2: %message%"	if {chaton} is true:		broadcast "%{_chat}%"	else:		send "&7Chat jest wylaczony!"	stop command /chat:	trigger:		if player has permission "admin":			if {chaton} is true:				set {chaton} to false				broadcast "&7Chat zostal wylaczony przez &c%player%"				stop			set {chaton} to true			broadcast "&7Chat zostal wlaczony!"			stop		send "&cNie posiadasz odpowiedniego pozwolenia!"

Brawo! Dodałeś możliwość włączenia i wyłączenia chatu przez administratora.

Zmienne w prefiksie

Wróćmy do naszego podstawowego kodu. Na serwerach coraz częściej spotykam "poziom kopania"... czy coś takiego. Dodajmy więc ten poziom przed nickiem i prefixem gracza. Przyjmijmy, że poziom jest zapisywany w zmiennej "{poziom.%player%}". Tak więc dopiszmy do wartości wyświetlanej na chacie tą właśnie zmienną.

on chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[%{poziom.%player%}%] [gracz] %player%&2: %message%"	if player has permission "vip":		set {_chat} to "&6[%{poziom.%player%}%] [vip] %player%&2: %message%"	if player has permission "admin":		set {_chat} to "&4[%{poziom.%player%}%] [admin] %player%&2: %message%"	broadcast "%{_chat}%"	stop

Teraz wiadomość będzie wyglądać w ten sposób: [30] [admin] Anemonex: siema!

No dobra, ten prefiks będzie z graczem od zawsze i na stałe. Jednakże w przypadku np. gildii lepiej byłoby, aby prefiks znikał, gdy gildia nie istnieje.

Wykorzystamy dwie zmienne:
"{gildia.członek.%player%}" - będzie określać, czy gracz aktualnie jest w gildii.
"{gildia.członek.%player%}" - będzie określać nazwę gildii, w jakiej użytkownik się znajduje. Jako gracza uznajmy vipa o nicku Staś, który jest członkiem gildii "Nel".

Teraz nasz skrypt, musi sprawdzać, czy Staś jest w gildii, a jeżeli tak to zamienić wartość "{tag}" na nazwę gildii. Jeżeli jednak nie - na puste pole.

on chat:	cancel event		if player has permission "gracz":			set {_chat} to "{tag}&7[gracz] %player%&2: %message%"		if player has permission "vip":			set {_chat} to "{tag}&6[vip] %player%&2: %message%"		if player has permission "admin":			set {_chat} to "{tag}&4[admin] %player%&2: %message%"		if {gildia.czlonek.%player%} is true:			replace all "{tag}" with "&c[%{gildia.nazwa.%player%}%] " in {_chat}		if {gildia.czlonek.%player%} is false:			replace all "{tag}" with "" in {_chat}		broadcast "%{_chat}%"        stop

Teraz jeżeli Staś będzie w gildii jego wiadomość będzie wyglądała tak: [Nel] [vip] Staś: Cześć!
Jeżeli opuści gildię: [vip] Staś: Cześć!


Mam nadzieję, że poradnik był czytelny, a co najważniejsze przydał się!
Jeżeli masz pytania dotyczące innych opcji chatu lub chcesz wyrazić swoją opinię zapraszam do dyskusji ;)

 

PRZYDATNE ZMIENNE

%display name of player% - Widoczna nazwa gracza (np. edytowana przez Essentials/PermissionsEx)

%player's world% - Świat na którym znajduje się gracz

%player's balance% - Pieniądze gracza (wymaga pluginu z ekonomią, np. Vault)

Mój stary poradnik skopiowany na żywca z innego forum. Jak coś jest źle napisane, to... trudno.

Odnośnik do komentarza
https://skript.pl/temat/3169-edycja-czatu/
Udostępnij na innych stronach

To nie niedociągnięcie, to wymyślanie problemów na siłę   >.<

 

on chat:	cancel event	if player has permission "gracz":		set {_chat} to "&7[%{poziom.%player%}%] [gracz] %player%&2: %message%" //Zmienna ustawia się na tekst dla gracza	if player has permission "vip":		set {_chat} to "&6[%{poziom.%player%}%] [vip] %player%&2: %message%" //Zmienna ustawia się na tekst dla vipa	if player has permission "admin":		set {_chat} to "&4[%{poziom.%player%}%] [admin] %player%&2: %message%" //Zmienna ustawia się na tekst dla admina	broadcast "%{_chat}%" //Jeżeli zmienna na samym końcu została ustawiona dla admina, to wiadomość zostanie wysłana w ostatniej podanej formie.	stop
Edytowane przez Anemonex
Odnośnik do komentarza
https://skript.pl/temat/3169-edycja-czatu/#findComment-28146
Udostępnij na innych stronach

  • Szifter zablokował(a) ten temat
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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