Skocz do zawartości
Angel

[CS:GO] Blokowanie graczy z darmową wersją gry

Rekomendowane odpowiedzi

Jako że CS jest darmowy i można na nim grać na serwerach społecznościowych to sporo banów dzisiaj poleciało....

Na alliedach znalazłem coś takiego, może się komuś przydać ?

 

 

#pragma semicolon 1

#include <sourcemod>
#include <SteamWorks>

#define PLUGIN_VERSION "1.0.0"

public Plugin myinfo = {
    name        = "Free2BeKicked - CS:GO",
    author      = "Asher \"asherkin\" Baker, psychonic",
    description = "Automatically kicks non-premium players.",
    version     = PLUGIN_VERSION,
    url         = "http://limetech.org/"
};

public OnPluginStart()
{
    CreateConVar("anti_f2p_version", PLUGIN_VERSION, "Free2BeKicked", FCVAR_DONTRECORD|FCVAR_NOTIFY);
}

public void OnClientPostAdminCheck(int client)
{
    if (CheckCommandAccess(client, "BypassPremiumCheck", ADMFLAG_ROOT, true))
    {
        return;
    }
    
    if (k_EUserHasLicenseResultHasLicense != SteamWorks_HasLicenseForApp(client, 624820))
    {
        KickClient(client, "You need a paid CS:GO account to play on this server");
        return;
    }
    
    return;
}

źródło -> https://forums.alliedmods.net/showpost.php?p=2627229&amp;postcount=3
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 COMMUNITY SERVERS ]

– Added a setting “sv_prime_accounts_only”. When enabled, only prime accounts can connect to the game server.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poczytałem chwilę i to nie jest blokowanie graczy z "darmową wersją" gry. To sprawdza, czy dany gracz ma status Prime. W rezultacie każda osoba, która kupiła CS:GO przed F2P i nie dokupiła sobie statusu Prime, nie będzie mogła wejść na serwer. Nie wiem, czy o to nam chodzi.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak zakładałem wątek na alli o to mi chodziło aby gracze bez prima dostawali kicka, po za tym plugin już jest tak jak by nie aktualny

 

[ COMMUNITY SERVERS ]
– Added a setting “sv_prime_accounts_only”. When enabled, only prime accounts can connect to the game server.

Edytowane przez szogun

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Macie rację, teraz wszystko się będzie przez kilka dni zmieniać jak w kalejdoskopie, ale macie rację dodając ten CVAR Valve zrobiło ukłon w naszą stronę ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co masz na myśli?
Szczerze powiedziawszy jeszcze go nie sprawdzałem, admini czuwają nad przebiegiem rozgrywki u mnie na serwerze

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 minuty temu, Angel napisał:

Co masz na myśli?
Szczerze powiedziawszy jeszcze go nie sprawdzałem, admini czuwają nad przebiegiem rozgrywki u mnie na serwerze

Pomimo ustawienia u mnie nadal noprime wchodzi nawet mowa coś na allied że ten cvar nie działa więc coś w tym być musi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Potwierdzam Cvar dodany przez Valve nie działa. Trzeba zastosować plugin, który podesłał @Angel.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ogólnie to plugin ma sens. Po dokładniejszej analizie stwierdzam, że wpuszcza on graczy nawet bez statusu Prime, ale z grą csgo w bibliotece, czyli wszystkich, którzy mieli csgo przed update`em do free to play. Taka opcja jest lepsza niż zwykły cvar, gdyż pozwala na dowolną reakcję. Właściciel w takim wypadku może kickować z konkretnym powodem, banować lub nawet wpuszczać graczy F2P, jeżeli mają określone przywileje(np. VIP`a).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość HOW?!

Nie wiem czy tylko ja mam tak na swoim Serwerze czy wy też, ale po wgraniu pluginu, GOTV nie może wejść na Serwer, jest kickowane i uznawane, że nie ma statusu prime. Może ktoś podpowiedzieć co zrobić? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
4 godziny temu, HOW?! napisał:

Nie wiem czy tylko ja mam tak na swoim Serwerze czy wy też, ale po wgraniu pluginu, GOTV nie może wejść na Serwer, jest kickowane i uznawane, że nie ma statusu prime. Może ktoś podpowiedzieć co zrobić? 

public void onclientpostadmincheck(int client)
{
    if (checkcommandaccess(client, "bypasspremiumcheck", admflag_root, true))
    {
		return;
    }
    if (!IsValidClient(client))
		return;
    if (k_euserhaslicenseresulthaslicense != steamworks_haslicenseforapp(client, 624820))
    {
        kickclient(client, "you need a paid cs:go account to play on this server");
        return;
    }
    
    return;
}

bool IsValidClient(int client)
{
    if (client <= 0 || client > MaxClients) {
        return false;
    }
   
    if (!IsClientInGame(client)) {
        return false;
    }
   
    if (IsFakeClient(client)) {
        return false;
    }
  
    return true;
}

 

Niby działa.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość HOW?!
#pragma semicolon 1

#include <sourcemod>
#include <SteamWorks>

#define PLUGIN_VERSION "1.0.0"

public Plugin myinfo = {
    name        = "Free2BeKicked - CS:GO",
    author      = "Asher \"asherkin\" Baker, psychonic",
    description = "Automatically kicks non-premium players.",
    version     = PLUGIN_VERSION,
    url         = "http://limetech.org/"
};

public OnPluginStart()
{
    CreateConVar("anti_f2p_version", PLUGIN_VERSION, "Free2BeKicked", FCVAR_DONTRECORD|FCVAR_NOTIFY);
}

public void onclientpostadmincheck(int client)
{
    if (checkcommandaccess(client, "bypasspremiumcheck", admflag_root, true))
    {
		return;
    }
    if (!IsValidClient(client))
		return;
    if (k_euserhaslicenseresulthaslicense != steamworks_haslicenseforapp(client, 624820))
    {
        kickclient(client, "you need a paid cs:go account to play on this server");
        return;
    }
    
    return;
}

bool IsValidClient(int client)
{
    if (client <= 0 || client > MaxClients) {
        return false;
    }
   
    if (!IsClientInGame(client)) {
        return false;
    }
   
    if (IsFakeClient(client)) {
        return false;
    }
  
    return true;
}

Czyli kod powinien wyglądać tak jak wyżej aby GOTV mogło wejść na Serwer, a gracze bez prime nie?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@HOW?! Ta.

Zmień sobie jeszcze

if (k_euserhaslicenseresulthaslicense != steamworks_haslicenseforapp(client, 624820))

Na

if (k_EUserHasLicenseResultDoesNotHaveLicense == SteamWorks_HasLicenseForApp(client, 624820))

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zawsze możesz użyć sv_prime_accounts_only po za tym plugin w żadne sposób nie wywala gotv musi być winny inny plugin

Udostępnij tę odpowiedź


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

Zawsze możesz użyć sv_prime_accounts_only po za tym plugin w żadne sposób nie wywala gotv musi być winny inny plugin

Wywala, plugin bierze GOTV jako gracza bez prime, sam tak u siebie miałem ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
7 minut temu, Weak. napisał:

Wywala, plugin bierze GOTV jako gracza bez prime, sam tak u siebie miałem ?

Ciekawe bo mam to samo u siebie i gotv non stop jest na serwerze

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...