Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

camerdisco

Użytkownik
  • Postów

    219
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez camerdisco

  1. 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.
  2. 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.
  3. 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);
  4. 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.
  5. 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
  6. Najprawdopodobniej posiadasz złą bibliotekę colors
  7. public acton:paka(Handle:event, const String:name[], bool:dontBradcast)
  8. 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.
  9. Lol, Printujesz reason przed pobraniem go, magicznie on się tam nie pojawi.
  10. Użyj np. LogError("reason: %s", reason), a następnie otwórz logi błędów.
  11. Nie jestem pewien czy na pewno w powodzie to będzie disconnect, sprawdź to poprzez printowanie gdzieś tego stringa, do którego pobierasz reason.
  12. 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)
  13. 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.
  14. Możesz pobrać string z eventu o nazwie reason i sprawdzić czy jest to "disconnect"
  15. 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"); } }
  16. 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.
  17. 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.
  18. Miałem na myśli, że w wersji 1.9 możesz ustawić wiele chat triggerów i oddzielasz je przecinkiem tylko.
  19. Z tego co pamiętam to sm w wersji 1.9 czyli nie do końca stabilnej udostępnia taką opcję.
  20. 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.
  21. 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.
  22. Pętle łapiącą graczy musisz zacząć od 1 i możesz jeszcze sprawdzać czy gracz jest w grze.
  23. 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ć.
×
×
  • Dodaj nową pozycję...