Chciałbym zmienić treść standardowego motd-a, tego, który wyświetla się każdemu graczowi po wejściu na serwer. Wiem, że można edytować plik motd.txt, jednak nie o to mi chodzi. Mi zależy na tym, żebym mógł przy pomocy pluginu "w locie" zmieniać treść owego motda, lub wyłączyć go i wyświetlić swój. Dzięki za jakąkolwiek pomoc
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Zmiana treści motd-a, tego standardowego.
#1
Napisano 03.01.2009 13:24
Chciałbym zmienić treść standardowego motd-a, tego, który wyświetla się każdemu graczowi po wejściu na serwer. Wiem, że można edytować plik motd.txt, jednak nie o to mi chodzi. Mi zależy na tym, żebym mógł przy pomocy pluginu "w locie" zmieniać treść owego motda, lub wyłączyć go i wyświetlić swój. Dzięki za jakąkolwiek pomoc
#2
Napisano 03.01.2009 14:25
Podmienić na własny tekst można dopiero po zamknięciu standardowego motd. Czyli jakoś po client_putinserwer zamknąć u gracza okno i otworzyć własne, ale nie wiem jak
#3
Napisano 03.01.2009 14:34
http://wiki.amxmodx....ame_Events#MOTD
Ale nie wiem jak tego użyć
Może ktoś ma jeszcze jakieś pomysły?
#4
Napisano 03.01.2009 14:43
register_event("MOTD","fnPokazaloMotd","b");
..
public fnPokazaloMotd(id){
new flag=read_data(1);
new txt[61];
read_data(2,txt,60);
}
Ale motd wysyłany jest w wielu wiadomościach o długości 60. Więc jedno wywołanie fnPokazloMotd nie oznacza jednego okna z informacją.
#5
Napisano 03.01.2009 14:51
Czyli musiałbym pobrać ilość znaków z motd.txt / 60 i wtedy wiedziałbym ile razy będzie wykonana?
Ale w takim razie jak podmienić tekst w środku?
Przypisywać nowe wartości do:
new txt[61]? Czy jak, bo już nie wiem sam
#6
Napisano 03.01.2009 14:56
#7
Napisano 03.01.2009 15:00
Note: Max. Text length is 60. Large MOTD is sent in multiple messages. For the message that is send a last MOTD part the Flag will be set to 1 and 0 otherwise.Trzeba wziąć pod uwagę flagi.
#8
Napisano 03.01.2009 15:09
txt[] w zasadzie jest potrzebne tu, z uwagi na przechwycenie tylko motd.txt, inne okna zostawiając w spokoju; umieść w nim coś wyjątkowego np. /*wizu*/ w pierwszej linijce.
Tak można zweryfikować, ale jak zastąpić to już nie mam pojęcia
#9
Napisano 03.01.2009 15:10
new tresc[9999]
...
register_event("MOTD","fnPokazaloMotd","b")
..
public fnPokazaloMotd(id){
new flag = read_data(1)
new txt[61]
read_data(2,txt,60)
format(tresc,9998,"%s%s",tresc,txt)
if (flag)
i tutaj zmiana tresci
}
Ale jak tą treść zmienić? I czy dobrze myślę?...@EDIT R3X tak właśnie myślałem, ale jak to zmienić
#10
Napisano 03.01.2009 15:22
#11
Napisano 03.01.2009 15:25
Format zawsze zaczyna od 1. znaku a add dodaje tresc na koniec (czyt. masz znak[100], pierwsze 40 uzywasz do add doda od 41 znaku).
[ Dodano: 03-01-2009, 15:27 ]
PS. Flaga "1" oznacza ze jest to ostatnia paczka danych z motd - czyli chyba po otrzymaniu tej paczki graczowi sie wyswietla motd
#12
Napisano 03.01.2009 15:28
a co do add to dzięki, wypróbuję jak jakoś dojdziemy jak zmienić treść
#13
Napisano 03.01.2009 15:38
Albo skopiowac all wiadomosc potem tylko dopisac do niej to co potrzebujesz od razu zamknac motd i wyswietlic swoj poprawiony.
Albo przechwytywac paczke po paczce, w odpowiednim miejscu wkleic swoje a potem niestety przesuwac w kolejnych paczkach (bo ponad 60 znakow raczej przeslac nie mozna) dane wypchniete przez nasze dane, a jak w ostatniej wiadomosci (z flaga 1) tez nie ma miejsca to trzeba by bylo zmienic flage na 0 i uzyc write_message czy jak to tam ma i wyslac dodatkowa paczke z flaga inicjujaca 1...
PS. jestem za 1 rozwiazaniem bo w 2 to duzo moze byc problemow
#14
Napisano 03.01.2009 17:07
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty









