Skocz do zawartości
adk

[Rozwiązane] Edycja informacji o banie

Rekomendowane odpowiedzi

eMa.

Potrzebuję pomocy przy edycji kodu od SourceBans'a, aby po zbanowaniu gracza wyrzucało z taką informacją o banie jak na poniższym screenie. 

Screen, nie mój, ale musiałem pokazać o co mi chodzi. 

 

2.thumb.jpg.4d7103a4e766ca3348d367fe1d26ce46.jpg

 

 

Najlepiej aby wyświetlało takie informacje:

 

Zostałeś zbanowany na tym serwerze! 

Odwiedź <forum>

Czas bana:

Admin:

Powód:

Twoje SteamID:

Twoje IP:

Edytowane przez adk

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 godziny temu, Roberrt napisał:

Zwykły HTML to jest. Nie jest to trudne do wykonania bo sam to na cs4frags wykonywałem i psst nie musisz zamazywać nazwy sieci. Jak wrócę do domu to wyśle urywek kodu.

Zakryłem, bo nie wiem jak z podejściem tutaj do "reklam". 

Wiem, że HTML, ale nie do końca wiem, czy tylko jeden plik do edycji, czy więcej. No i wiadomo sam kod. Także wolę sobie dać pomóc ?

Przez MAGNET,

Nie mamy z tym dużej spiny. Po prostu trzeba do tego podchodzić zdrowo (np. nie umieszczać downloadu na zewnętrznej stronie, która dodatkowo wymaga rejestracji (bez obrazy @Roberrt, po prostu był to dobry przykład :D)). W tej sytuacji nazwa forum nie byłaby niczym złym

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Z tego co pamiętam, to przy Sourcebans++ wszystko jest w sbpp_main.sp i sourcebans.phrases.txt. Plugin używa langów do wyświetlania informacji w różnych językach. Co do samego miejsca występowania tej informacji, to wyszukaj w kodzie "KickClient" i "Banned Check Site".

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@Roberrt

 

Po wyszukaniu 

KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

Znalazło mi 3 takie kody, powinienem wszystkie zamienić na to co podałeś?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pierwsze: 

 

// Kick player
	if (GetClientUserId(client) == UserId)
		KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

 

Drugie:

 

FormatEx(buffer, sizeof(buffer), "banid 5 %s", clientAuth);
		ServerCommand(buffer);
		KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

 

Trzecie:

 

ServerCommand(buffer);

	if (IsClientInGame(client))
		KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

 

Edytowane przez adk

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hmm wydaje mi się, że tylko opcja druga tutaj zadziała. Gdybyś chciał to zastosować w pozostałych, pewnie trzeba by było usunąć informacje o adminie i ewentualnie czasie, bo w momencie banowania takie informacje były dostępne - w pozostałych natomiast prawdopodobnie nie (choć nigdy w bebechy SourceBansa nie zaglądałem. Jeśli się mylę proszę o poprawienie mnie)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@MAGNET

 

Zamieniłem, ale przy kompilacji wygląda to tak:

// sbpp_main.sp(1624) : error 017: undefined symbol "time"
// sbpp_main.sp(1626) : error 017: undefined symbol "Reason"
// sbpp_main.sp(1626) : warning 215: expression has no effect
// sbpp_main.sp(1626) : error 001: expected token: ";", but found "]"
// sbpp_main.sp(1626) : error 029: invalid expression, assumed zero
// sbpp_main.sp(1626) : fatal error 189: too many error messages on one line

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, Roberrt napisał:

Powtórka jak wrócę to wyśle 

 

Najlepiej od razu .sp bez błędów do kompilacji ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@Roberrt, a powiedz mi, czy dałoby rade zamienić ten czas nie na minuty, tylko na konkretną datę z godziną wygaszenia bana?

 

np. Ban wygasa: 15.01.2019 10:00

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 godzinę temu, Roberrt napisał:

FormatTime + http://www.cplusplus.com/reference/ctime/strftime/
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Co dokładnie musiałbym użyć? Bo coś mi nie kmini i chociażby przy dawaniu bana, nie daje go. Więc, coś źle używam FormatTime. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

//REF

 

W sumie już sobie poradziłem i wszystko śmiga. 

Dziękuję za pomoc @Roberrt ;]

 

 

Spoiler

863463127_Beztytuu.thumb.png.2ffeefe9d967cfccc749f9523e9c55ea.png

 

Edytowane przez adk

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mógł byś zostawić dla innych porade jak sam gotowca dostałeś :) 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No niby gotowca, ale i tak musiałem się z tym troszkę pobawić, aby to działało jak należy. 

Ale niech będzie.

 

Otwieramy sbpp_main.sp i szukamy: 

 

	// Kick player
	if (GetClientUserId(client) == UserId)
		KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

 

I zamieniamy na:

 

	char BanEnd[64];
	FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", (GetTime() + g_BanTime[client] + time * 60));
	
	// Kick player
	if (GetClientUserId(client) == UserId)
	{
		if (!time)
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#c40000'><b>Zostałeś permanentnie zbanowany na tym serwerze!</b></font><br /><br />Admin: <b>%N</b>", admin);
			else KickClient(client, "<font color='#c40000'><b>Zostałeś permanentnie zbanowany na tym serwerze!</b></font><br /><br />Admin: <b>%N</b><br />Powód: <b>%s</b>", admin, Reason);
		}
		else
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#ff8300'><b>Zostałeś zbanowany na tym serwerze!</b></font><br /><br />Wygasa: <b>%s</b><br />Admin: <b>%N</b>", BanEnd, admin);
			else KickClient(client, "<font color='#ff8300'><b>Zostałeś zbanowany na tym serwerze!</b></font><br /><br />Wygasa: <b>%s</b><br />Admin: <b>%N</b><br />Powód: <b>%s</b>", BanEnd, admin, Reason);
		}
	}
	//KickClient(client, "%t", "Banned Check Site", WebsiteAddress);

 

Edytujemy pod siebie i gotowe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Szkoda tylko, że jak się wchodzi ponownie na serwer to komunikat o banie jest ten standardowy.

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wystarczy zedytować poprzednie komunikaty, które były na górze. Zakładam, że z tym już sobie poradzisz ? (prawie kopiuj-wklej)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...