You are not logged in.

Dear visitor, welcome to sourceserver.info. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

HSFighter

Administrator

  • "HSFighter" started this thread

Posts: 1,517

Location: Flensburg

Occupation: Industrieelektroniker

wcf.user.option.userOption53: Nein

  • Send private message

1

Saturday, February 4th 2012, 12:28pm

Prüfung ob ein Client gültig ist

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Funktion aufrufen:
if (!CheckClient(client)) return;

// Funktion:
public bool:CheckClient(client)
{
    if (client != 0)
    {
        // Get all clients on the server
        for (new 1<= MaxClientsi++)
        {
            // Check if player ok
            if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(client))
            {
                // Check if client is a player on the server
                if (== client) return true;            
            }
        }    
    }    
    return false;
}



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

HSFighter

Administrator

  • "HSFighter" started this thread

Posts: 1,517

Location: Flensburg

Occupation: Industrieelektroniker

wcf.user.option.userOption53: Nein

  • Send private message

2

Wednesday, January 30th 2013, 1:44am

Anbei eine optimierte Methode:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
// Funktion aufrufen:
if (!CheckClient(client)) return;

// Funktion:
public bool:CheckClient(client)
{
    if ( !( <= client <= MaxClients ) || !IsClientInGame(client) || IsFakeClient(client) )
    {
        return false;
    }
    return true;
}


Danke an RedSword



-
Anti Cheat: www.smacbans.com
Kein direkter Support per PM (nur auf Anforderung)

Impact

Super Moderator

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

3

Wednesday, January 30th 2013, 2:44am

Ich nutze das hier für generelle Checks, ein Botcheck gehört für mich nicht zu einen "Valider Client Check".

PHP Source code

1
2
3
4
5
6
7
8
9
stock bool:IsClientValid(id)
{
    if(id && id <= MaxClients && IsClientInGame(id))
    {
        return true;
    }
    
    return false;
}


MfG
Impact

DasNeo

Beginner

Posts: 9

Location: Hessen

wcf.user.option.userOption53: Ja

  • Send private message

4

Friday, March 22nd 2013, 1:58pm

Mahlzeit!

In CS:S ist es ja so, dass jeder Spieler eine individuelle playerid bekommt.
Wie genau sieht dass dann mit den MaxClients aus?

Ist dann MaxClients dann die Slotanzahl?
Bekommt jeder Spieler einfach eine ID von 0-Slotanzahl? (Spieler 1: ID0, Spieler 2: ID1)
Oder ist es so, wie man es in den stats sieht?

Source code

1
if (!CheckClient(client)) return;

Was bedeutet es, wenn man nichts returnt? Ist das das gleiche wie return 0?

Ist Client die Variable der Playerid?


Danke erstmal.


Gruß,
DasNeo. :)

Impact

Super Moderator

Posts: 1,276

wcf.user.option.userOption53: Nein

  • Send private message

5

Friday, March 22nd 2013, 6:13pm

In CS:S ist es ja so, dass jeder Spieler eine individuelle playerid bekommt.
Wie genau sieht dass dann mit den MaxClients aus?
Jeder Spieler erhält einer Userid, dieser wird bei jeder Verbindung um eins erhöht.
Eine ClientID bzw der EntityIndex liegt zwischen 1-MaxClients (0 Ist immer der Server).
MaxClients ist hierbei eine dynamische Konstante die von Sourcemod verwaltet wird, du findest hier noch ein paar Infos dazu.

Source code

1
if (!CheckClient(client)) return;

Was bedeutet es, wenn man nichts returnt? Ist das das gleiche wie return 0?
Das solltest du nicht machen (außer du weißt was du tust), im Normalfall nutzt man diese Art von return um den Code an jener Stelle zu beenden, das Funktioniert aber nicht in jeder Funktion oder überall je nach voherigem/folgendem Code.
Diese Art von "Codeverkürzungen" würde ich übrigens auch nicht empfehlen, du kannst dir ja mal den Codeguide von Sourcemod angucken.

MfG
Impact

This post has been edited 3 times, last edit by "Impact" (Mar 22nd 2013, 10:43pm)