camerdisco
Użytkownik-
Postów
219 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
13
Treść opublikowana przez camerdisco
-
2 kwerenda to ten sam screen, tak btw. nie wiem w jakim celu stosujesz klauzule like przy sprawdzaniu SteamID, bo `steamid` LIKE '%s' to będzie to samo co: `steamid` = '%s' btw. w jaki sposób brałeś kwerendy? np. po Format(Query, sizeof(Query), "SELECT `flags` FROM `sklepsms_services` WHERE `serviceid`='%i'", Service); Dodaj PrintToServer bądź np. LogError dla tego stringu Query i dokładnie takie samo zapytanie, które odczytasz wykonaj w pma.
-
A próbowałeś sobie printować to zapytanie gdzieś i testować je np. w pma? Bo błędów za bardzo nie widać, więc może to wynikać z jakiejś złej budowy zapytania po prostu.
-
Ale sama zmienna Flags jak ją printujesz jest ok i poprawnie widać flagi tak? Bo nie do końca rozumiem. btw. spróbuj tak: strcopy(g_cFlags[client], sizeof(g_cFlags[]), Flags);
-
Polecam spróbować Ci użyć threadowego sqla, https://sm.alliedmods.net/new-api/dbi/Database/Query tylko nie zapominaj, że to jest metoda klasy Database. Prędzej czy później musiałbyś to przepisać na ten sposób, bo zaczęłyby Cie zastanawiać lagi podczas wykonywania zapytania.
-
Po pierwsze używaj "threadowych" sqlów, inaczej będą po prostu na serwerach lagi, gdy będzie odczytywało usługi, po drugie to bardzo możliwe, że za wcześnie próbujesz pobrać SteamID, użyj OnClientAuthorized
-
ROZWIĄZANE Problem z tagami pluginów AbNeR'a
camerdisco odpowiedział(a) na SeParator temat w Problemy
Najprawdopodobniej posiadasz złą bibliotekę colors -
public acton:paka(Handle:event, const String:name[], bool:dontBradcast)
-
Nikt najpewniej z fusów nie wróży, musisz wrzucić to zapytanie i jego callback też, przy okazji podaj link do logu crashu na limetechu jeśli go używasz.
-
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Lol, Printujesz reason przed pobraniem go, magicznie on się tam nie pojawi. -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Zamieść tutaj cały kod jakiego używasz. -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Użyj np. LogError("reason: %s", reason), a następnie otwórz logi błędów. -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Nie jestem pewien czy na pewno w powodzie to będzie disconnect, sprawdź to poprzez printowanie gdzieś tego stringa, do którego pobierasz reason. -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
StrContains zwraca -1 jeśli dany ciąg znaków nie istnieje, musisz więc robić to tak: if(GetClientTeam(client == CS_TEAM_T) && StrContains(reason, "disconnect", false) != -1) -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Tak nie porównujesz stringów, w tym przypadku powinieneś użyć https://sm.alliedmods.net/new-api/string/StrContains btw. za mały bufer stworzyłeś, tam będzie na pewno powyżej 10 znaków. -
[CSGO] "Ucieczka z TT", ominięcie bana przy kick'u
camerdisco odpowiedział(a) na Bartek Studniarski temat w Problem z kodem
Możesz pobrać string z eventu o nazwie reason i sprawdzić czy jest to "disconnect" -
ROZWIĄZANE [CSGO] HookEvent("player_disconnect")
camerdisco odpowiedział(a) na Bartek Studniarski temat w Pytania na temat kodowania
Zamiast -1 daj 0, SourceBans_BanPlayer(0, client, 30, "Ucieczka przed TT"); -
ROZWIĄZANE [CSGO] HookEvent("player_disconnect")
camerdisco odpowiedział(a) na Bartek Studniarski temat w Pytania na temat kodowania
Przy okazji warto pamiętać aby jednak wstawiać te średniki po każdej linii, gdzie tego trzeba oraz stosować dla estetyki pewnie uproszczenia #include <sourcemod> #include <sourcebans> #include <cstrike> #include <sdktools> public void OnPluginStart() { HookEvent("player_disconnect", Event_Disconnected, EventHookMode_Post); } public Action Event_Disconnected(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); if(GetClientTeam(client) == CS_TEAM_T) { SourceBans_BanPlayer(-1, client, 30, "Ucieczka przed TT"); } } -
ROZWIĄZANE [CSGO] HookEvent("player_disconnect")
camerdisco odpowiedział(a) na Bartek Studniarski temat w Pytania na temat kodowania
SourceBans_BanPlayer(client, client, 30, "Ucieczka przed TT"); powinno to raczej wyglądać tak: SourceBans_BanPlayer(-1, client, 30, "Ucieczka przed TT"); Inaczej banującym będzie ten sam co dostał bana. -
ROZWIĄZANE [CSGO] HookEvent("player_disconnect")
camerdisco odpowiedział(a) na Bartek Studniarski temat w Pytania na temat kodowania
Masz błędny callback od eventu, poprawny wskazał Ci wyżej Husarz, po drugie "clienta" pobierzesz na podstawie pobrania wartości eventu userid(GetEventInt oraz GetClientOfUserId), co do funkcji SourceBans_BanPlayer to nie znam jej argumentów, musiałbyś wrzucić tutaj ten natyw z pliku sourcebans.inc, poza tym mieszasz stary syntaks z nowym. -
Miałem na myśli, że w wersji 1.9 możesz ustawić wiele chat triggerów i oddzielasz je przecinkiem tylko.
-
Z tego co pamiętam to sm w wersji 1.9 czyli nie do końca stabilnej udostępnia taką opcję.
-
Kombinować z timem, nie timerem jak już coś. Rozwiązaniem twoim będzie użycie funkcji https://sm.alliedmods.net/new-api/sourcemod/FormatTime Z tym, że czas do sformatowania to będzie pobrany ten z ciasteczka.
-
Nie analizowałem dokładniej kodu czy na pewno wszystko będzie OK, ale mniej więcej wykona to co napisałeś, z tym że gracz sobie może aktywować VIPa kiedy chce, poza tym nie, nie wystarczy zmienić czasu u siebie na komputerze, bo jak widzisz funkcja GetTime nie ma argumentu na miejsce kogo czas ma pobierać, więc można się domyślić, że jest to czas serwerowy.
-
Pętle łapiącą graczy musisz zacząć od 1 i możesz jeszcze sprawdzać czy gracz jest w grze.
-
Nie rób tego takim sposobem, jest strasznie "nieładny", powodem tych bugów powyżej był fakt, że trzeba sprawdzić przy wywołaniu funkcji czy istnieje już taki Handle od timera i jeśli tak to go zabić.
- 11 odpowiedzi
-
- 1
-
- Timer
- PrintHintText
-
(i 2 więcej)
Oznaczone tagami: