Skocz do zawartości
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
Zaloguj się, aby obserwować  
adk

[Rozwiązane] Edycja informacji o banie

Polecane posty

Napisano (edytowany)

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:

Edytowano przez adk

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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.

Udostępnij ten post


Link to postu
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 ten post


Link to postu
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".

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@MAGNET każdy sposób legalny na zyskanie potencjalnego klienta jest dobry.

 

 @adk

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

Znajdź to co wyżej podałem w pluginie i zmień na:

if (!time)
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś permanentnie zbanowany na tym serwerze.</font><br />Admin: <b><u>%N</u></b>", admin);
			else KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś permanentnie zbanowany na tym serwerze.</font><br />Admin: <b><u>%N</u></b><br />Powód: <b><u>%s</u></b>", admin, Reason);
		}
		else
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś zbanowany na tym serwerze.</font><br />Czas: <b><u>%i minut</u></b><br />Admin: <b><u>%N</u></b>", time, admin);
			else KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś zbanowany na tym serwerze.</font><br />Czas: <b><u>%i minut</u></b><br />Admin: <b><u>%N</u></b><br />Powód: <b><u>%s</u></b>", time, admin, Reason);
		}

 

  • Lubię to! 2
Przez MAGNET,

Tak długo, jak Cię nie złapią ;)

Udostępnij ten post


Link to postu
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 ten post


Link to postu
Udostępnij na innych stronach
Napisano (edytowany)

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);

 

Edytowano przez adk

Udostępnij ten post


Link to postu
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 ten post


Link to postu
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 ten post


Link to postu
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 ten post


Link to postu
Udostępnij na innych stronach
37 minut temu, adk napisał:

 

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

całego sp nie dam bo system bansów na 4f posiada jeszcze inne "feature'y" 

public VerifyInsert(Handle:owner, Handle:hndl, const String:error[], any:dataPack)
{
	if (dataPack == INVALID_HANDLE)
	{
		LogToFile(logFile, "Ban Failed: %s", error);
		return;
	}
	
	if (hndl == INVALID_HANDLE || error[0])
	{
		LogToFile(logFile, "Verify Insert Query Failed: %s", error);
		new admin = ReadPackCell(dataPack);
		ReadPackCell(dataPack); // target
		ReadPackCell(dataPack); // admin userid
		ReadPackCell(dataPack); // target userid
		new time = ReadPackCell(dataPack);
		new Handle:reasonPack = Handle:ReadPackCell(dataPack);
		new String:reason[128];
		ReadPackString(reasonPack, reason, sizeof(reason));
		decl String:name[50];
		ReadPackString(dataPack, name, sizeof(name));
		decl String:auth[30];
		ReadPackString(dataPack, auth, sizeof(auth));
		decl String:ip[20];
		ReadPackString(dataPack, ip, sizeof(ip));
		decl String:adminAuth[30];
		ReadPackString(dataPack, adminAuth, sizeof(adminAuth));
		decl String:adminIp[20];
		ReadPackString(dataPack, adminIp, sizeof(adminIp));
		ResetPack(dataPack);
		ResetPack(reasonPack);
		
		PlayerDataPack[admin] = INVALID_HANDLE;
		UTIL_InsertTempBan(time, name, auth, ip, reason, adminAuth, adminIp, Handle:dataPack);
		return;
	}
	
	new admin = ReadPackCell(dataPack);
	new client = ReadPackCell(dataPack);
	
	if (!IsClientConnected(client) || IsFakeClient(client))
		return;
	
	ReadPackCell(dataPack); // admin userid
	new UserId = ReadPackCell(dataPack);
	new time = ReadPackCell(dataPack);
	new Handle:ReasonPack = Handle:ReadPackCell(dataPack);
	
	decl String:Name[64];
	new String:Reason[128];
	
	ReadPackString(dataPack, Name, sizeof(Name));
	ReadPackString(ReasonPack, Reason, sizeof(Reason));
	
	if (!time)
	{
		if (Reason[0] == '\0')
		{
			CPrintToChatAll("%s %N: Permanetnie {darkred}zbanowano{default} gracza {orange}%s{default}.", Prefix, admin, Name);
			//ShowActivityEx(admin, Prefix, "%t", "Permabanned player", Name);
		} else {
			CPrintToChatAll("%s %N: Permanetnie {darkred}zbanowano{default} gracza {orange}%s{default}. (Powód: {purple}%s{default})", Prefix, admin, Name, Reason);
		}
	} else {
		if (Reason[0] == '\0')
		{
			CPrintToChatAll("%s %N: {darkred}Zbanowano{default} gracza {orange}%s{default} na {blue}%i minut{default}.", Prefix, admin, Name, time);
		} else {
			CPrintToChatAll("%s %N: {darkred}Zbanowano{default} gracza {orange}%s{default} na {blue}%i minut{default}. (Powód: {purple}%s{default})", Prefix, admin, Name, time, Reason);
		}
	}
	
	LogAction(admin, client, "\"%L\" banned \"%L\" (minutes \"%d\") (reason \"%s\")", admin, client, time, Reason);
	
	if (PlayerDataPack[admin] != INVALID_HANDLE)
	{
		CloseHandle(PlayerDataPack[admin]);
		CloseHandle(ReasonPack);
		PlayerDataPack[admin] = INVALID_HANDLE;
	}
	
	// Kick player
	if (GetClientUserId(client) == UserId)
	{
		if (!time)
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś permanentnie zbanowany na tym serwerze.</font><br />Admin: <b><u>%N</u></b>", admin);
			else KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś permanentnie zbanowany na tym serwerze.</font><br />Admin: <b><u>%N</u></b><br />Powód: <b><u>%s</u></b>", admin, Reason);
		}
		else
		{
			if (Reason[0] == '\0')KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś zbanowany na tym serwerze.</font><br />Czas: <b><u>%i minut</u></b><br />Admin: <b><u>%N</u></b>", time, admin);
			else KickClient(client, "<font color='#007bff'>CS-4Frags.pl</font><br /><font color='#ff8300'>Zostałeś zbanowany na tym serwerze.</font><br />Czas: <b><u>%i minut</u></b><br />Admin: <b><u>%N</u></b><br />Powód: <b><u>%s</u></b>", time, admin, Reason);
		}
	}
	//KickClient(client, "%t", "Banned Check Site", WebsiteAddress);
}

tutaj masz całą funkcję verifyinsert

  • Lubię to! 3

Udostępnij ten post


Link to postu
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 ten post


Link to postu
Udostępnij na innych stronach
13 minut temu, adk napisał:

@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

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!

  • Lubię to! 1

Udostępnij ten post


Link to postu
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 ten post


Link to postu
Udostępnij na innych stronach
Napisano (edytowany)

//REF

 

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

Dziękuję za pomoc @Roberrt ;]

 

 

Spoiler

863463127_Beztytuu.thumb.png.2ffeefe9d967cfccc749f9523e9c55ea.png

 

Edytowano przez adk

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

  • Lubię to! 1
  • Dobry pomysł! 1

Udostępnij ten post


Link to postu
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.

  • Lubię to! 4

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

 

 

  • Lubię to! 1

Udostępnij ten post


Link to postu
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 ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×