Skocz do zawartości

Rekomendowane odpowiedzi

Siemka, ostatnio edytowałem sobie plik od sourcebans'a sbpp_main i notatke po dostaniu bana. Aktualnie wygląda tak:

Spoiler

WdIr9Ts.jpg

Problem tkwi w czasie bana :/ Na razie zrobiłem tak, bo nie mam pojęcia już jak sformatować czas do konkretnej daty czyli: dzien-miesiąc-rok - godziny-minuty

 

Kod Aktualny:

KickClient(client, "<font color='#ffb426'>%s</font> - Zostałeś Zbanowany!\nPowód Bana: %s\nCzas Bana: %d Minut\n\nOdwołania składamy na forum!", WebsiteAddress, Reason, g_BanTime[client]);

A tak jak wspomniałem chciałbym ten czas sformatować do konkretnej daty zakończenia tylko już nie wiem jak :/

char enddate[32];
FormatTime(enddate, sizeof(enddate), "%d-%m-%Y %H:%M", NIE WIEM CO TU JUZ WPISAC ZEBY BYLO DOBRZE);

Różne rzeczy tam wpisywałem lecz zawsze kończyło się to tym, że po daniu bana na 1 minute była data zakończenia 01.01.1970 - 01:01

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dalej nie wiem jak to zrobić :/

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Musisz pobrać z bazy danych kolumnę "ends". Wtedy formatujesz ją za pomocą funkcji, którą wysłałeś:

 

char enddate[32];
FormatTime(enddate, sizeof(enddate), "%d-%m-%Y %H:%M", kolumna_ends);

 

 

I będziesz mógł wtedy spokojnie wyświetlić datę końca bana:

KickClient(client, "Ban kończy się: %s", enddate);

 

 

albo:

 

float godziny = float(kolumna_ends - GetTime()) / 3600.0;

KickClient(client, "Ban kończy się za: %1.2f godzin", godziny);

 

  • Like 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja i tak zawsze coś źle zrobie: 

 error 130: cannot coerce functions to values
public kolumna_ends() 
{
	decl String:Query[256];
	FormatEx(Query, sizeof(Query), "SELECT bid FROM %s_bans WHERE (length = '0' OR ends > UNIX_TIMESTAMP())", DatabasePrefix);
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dalej nie mam pojęcia jak to ogarnąć żeby nie było erroru :/

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra mniej wiecej ogarnalem tylko teraz zamiast pokazywac sie data zakonczenia pokazuje sie data rozpoczecia :/

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
char buffer[256];
	Format(buffer, sizeof(buffer), "SELECT * FROM %s_bans WHERE (ends > UNIX_TIMESTAMP())", DatabasePrefix);
	FormatTime(buffer, sizeof(buffer), "%d-%m-%Y %H:%M");

	// Kick player
	if (GetClientUserId(client) == UserId)
		KickClient(client, "<font color='#ffb426'>%s</font> - Zostałeś Zbanowany!\nPowód Bana: %s\nKoniec Bana: %s\n\nOdwołania składamy na forum!", WebsiteAddress, Reason, buffer);

zrobiłem tak i pokazuje się data rozpoczęcia bana a nie zakończenia :/

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
g_BanTime[client]

Rozumiem to jest czas bana w minutach?

 

W takim wypadku, zamieniasz na sekundy dodajesz do aktualnej daty w UNIXTIME i formatujesz:

char BanEnd[64];
FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", (GetTime() + g_BanTime * 60));

/* ... */

KickClient(client, "<font color='#ffb426'>%s</font> - Zostałeś Zbanowany!\nPowód Bana: %s\nKoniec Bana: %s\n\nOdwołania składamy na forum!", WebsiteAddress, Reason, BanEnd);


 

  • Like 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zamiast

FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", (GetTime() + g_BanTime * 60));

to

FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", (GetTime() + g_BanTime[client] + time * 60));

 

Chcemy pokazać koniec bana, a nie jego początek

  • Thanks 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)
15 godzin temu, Qesik napisał:

FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", (GetTime() + g_BanTime[client] + time * 60));

Trzeba było tak odrazu ja robiłem w ten sposób:

 

FormatTime(BanEnd, sizeof(BanEnd), "%d-%m-%Y %H:%M", g_BanTime[client] + time * 60));

 

i godzina sie zmieniala ale rok był 1970 :D Brakowało tego GetTime()

 

Temat do zamkniecia. Pomoc zostala udzielona :D

Edytowane przez sdasdas

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)
9 godzin temu, karakantoziomal napisał:

@sdasdas podrzuciłbyś może swój plik sbpp_main.sp? 

No nie wiem nie wiem :)

 

Edytowane przez sdasdas
  • Thanks 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No wlasnie nie doczytalem, że sbpp main, a nie wiem czy podesle bo jednak jest to coś co wyróżnia się i tylko niewiele osób ma tak to zodyfikowane, bo nie każdy potrafi :) Ja miałem problem z dobrym formatem czasu, który jest podany wyżej w postach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

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

  • Podobna zawartość

    • Przez blakker
      Siemka,
      Namieszalem a zarazem sam sie zamieszalem z instalacja sourcebans. Serwer stoi na hostingu pukawki, a baza danych jest z hostingu www.
      https://justpaste.it/62z5x
       
      Tak wyglada moj plik databases.cfg. ktore sa zbedne a ktore potrzebne? Kto wytlumaczy zielonemu ;
    • Przez Krzysztof Nowak
      Hey, podczas instalacji sourcebansa po stronie WWW napotkałem problem mianowicie przy tabeli "XML Support" mam disable przez co nie moge go zainstalowac ;/
      Szukałem w internetach i nie mogę za cholercie nic znaleźć instalowałem pakiet php-xml, restartowałem apache ale nic to nie dało.
      System: Debian 9
    • Przez fabko
      Witam,
      od pewnego czasu (po aktualizacji prawdopodobnie) mam problem z serwerem, ponieważ po kickowaniu / banowaniu przez sourcebansa crashuje się beż żadnych logów w konsoli ani /csgo/addons/sourcemod/logs. Miał ktoś podobny problem?
    • Przez Byku
      Hej mam problem, nie mogę podłączyć się do sourcebansa wyskakuja mi błędy:
       
       
      databases.cfg mam dobrze wypełnione
       
       
      No i na stronie hostingu mam dodany dostęp: 
       
      Adresy z przydzielonym dostępem ▾ Usuń 127.0.0.1 145.239.18.200 drugie to ip serwera,
       
      A jak HOST zmieniam na: "localhost" to wyskakuja mi juz tylko takie błędy:
       
       
    • Przez 4LiveTV
      Link do pluginu: https://forums.alliedmods.net/showthread.php?p=2534565
      Chciałbym żeby plugin mógł obsługiwać do 50 poziomów (lub jeśli to niemozliwe to max ile może obsłużyć), aktualnie obsługuje 18 z czym mi trochę smutno :(
      Jeśli ktoś się tego podejmie to dziękuje bardzo z całego serca <3
×