Skocz do zawartości

Rekomendowane odpowiedzi

PrivateMessage

Witam, tym razem napisałem skrypt na prywatne wiadomości. Ten skrypt używa YAML! Dzięki temu możesz odczytać prywatne wiadomości graczy.

Gdy gracz będzie podawał IP innego serwera na /msg będziesz mógł zbanować gracza za reklamę. Każda wiadomość idzie do dwóch logów. Do jednego - log.yml - który pokazuje log ze wszystkich graczy, a drugi - %player%.yml - wyświetla tylko te które wysłał %player%.

Skrypt zawiera następujące komendy i permisje:

/msg [Gracz] [Wiadomość] msg.pm

/r [Wiadomość] - reply.pm

/pm - admin.pm

/pm autor - admin.pm

/pm reload - admin.pm

v1.0.0

https://code.skript.pl/u5bRr4q6/raw/

Spoiler

#####################################################################################################
#Nie zezwalam na usuwanie komendy /pm autor.                                                                                                                           #
#Zezwalam na edycję wszystkich wiadomości, oprócz tej z komendy /pm autor!                                                                            #
#Zezwalam na edycję lokalizacji folderów, a także plików.                                                                                                               #
#Nie zezwalam na handlowanie skryptem.                                                                                                                                      #
#Nie zezwalam na podszywanie się pod autora skryptu.                                                                                                                 #
#####################################################################################################

 

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

No ok, jakiś pomysł na skrypt miałeś.

Jak sama nazwa wskazuje to są prywatne wiadomości, więc zapisywanie ich mija się z tytułem.

Zmień tytuł i będzie w porząsiu :)

To tyle z hejtu, ale nie lubię być tym złym więc dam trochę pozytywów :D

Jak na taki skrypt w miarę ogarnąłeś kod, by nie było zbędnych linijek.

Lecz mam wątpliwości co do /msg <text> <text>

Dałeś pętle i na warunku dałeś if, jeżeli się nie mylę to testowałeś ten skrypt, lecz tylko z jednym graczem.

Jak będzie graczy więcej niż 2 będzie ci się wyświetlało, że ta osoba jest offline, a później i tak wyśle wiadomość.

Aby czegoś takiego uniknąć to tego else wywalić, a na końcu if'u dać effect 'stop' wtedy wykonywanie kodu się zatrzyma. (coś jak return w javie)

a później w tabach równo z loopem dajesz, że nie ma tego gracza. To Ci zapewni, że wyśle tę wiadomość, wtedy gdy tego gracza nie ma na serwerze :)

Odnośnik do komentarza
https://skript.pl/temat/18677-privatemessage/#findComment-127517
Udostępnij na innych stronach

  • 2 tygodnie później...
set {r.%player%} to arg 1
set {r.%arg 1%} to player
wf "&6[&c%player% &6-> &9%arg 1%&6]&f %arg 2%" to "plugins/PrivateMessage/log.yml"
send "&6[&cJa &6-> &9%arg 1%&6]&f %arg 2%" to player
( send "&6[&9%player% &6-> &cJa&6]&f %arg 2%" to loop-player ) # - 1 - #

1. Nie lepiej byłoby Tobie napisać send "blabla..." to {r.%player%} parsed as player ?

command /msg [<text>] [<text>]:
                #2

2. Mogłeś wykonać to w prostszy sposób , ponieważ mogłeś użyc 

[<player>]

Nawet możesz podmienić kod jeśli chcesz...

 

command /msg [<player>] [<text>]:
	aliases: pm, m, tell
	permission: msg.pm
	permission message: &4Nie masz dostepu do tej komendy.
	trigger:
		argument 2 isn't set:
			send "&cUzyj: /msg [Gracz] [Wiadomosc]"
		argument 2 is set:
			player-arg is online:
				set {r.%player%} to arg 1
				set {r.%arg 1%} to player
				wf "&6[&c%player% &6-> &9%arg 1%&6]&f %arg 2%" to "plugins/PrivateMessage/log.yml"
				send "&6[&cJa &6-> &9%arg 1%&6]&f %arg 2%" to player
				send "&6[&9%player% &6-> &cJa&6]&f %arg 2%" to loop-player
				if file "plugins/PrivateMessage/Players/%arg 1%.yml" doesn't exists:
					create file "plugins/PrivateMessage/Players/%arg 1%.yml"
				if file "plugins/PrivateMessage/Players/%player%.yml" doesn't exists:
					create file "plugins/PrivateMessage/Players/%player%.yml"
				wf "&6[&c%player% &6-> &9%arg 1%&6]&f %arg 2%" to "plugins/PrivateMessage/Players/%player%.yml"
			else:
				send "&cGracz do ktorego wysylasz wiadomosc jest offline!"
				stop


Dalej już raczej wiesz co poprawić ;)

Moim zdaniem skrypt powinien być ulepszony.

Edytowane przez iм×kvρi
Odnośnik do komentarza
https://skript.pl/temat/18677-privatemessage/#findComment-129140
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
Dodaj odpowiedź do tematu...

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