@Zero: NP :D
Ich bin ja eh so der alte "Blockcoder", aber diesen Codeteil kann ich nicht ganz nachvollziehen.
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
if (!IsClientOK(client)) return;
public bool:IsClientOK(client)
{
if (client != 0)
{
// Get all clients on the server
for (new i = 1; i <= MaxClients; i++)
{
// Check if player ok
if (IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(client))
{
// Check if client is a player on the server
if (i == client) return true;
}
}
}
return false;
}
|
Wenn ich das richtig sehe, ist obiger Check equivalent zu:
!IsFakeClient(client) im Bezug auf den Client.
Wieso machst du das nicht so?
Durch frühere Erfahrungen mit Client ID's die von Entitys ermittelt werden hat sich diese Kontrolle sehr bewährt.
Ich hatte damals das Problem das der Befehl "
!IsFakeClient(client)" schon einen Fehler verursachte da die ID keine Client ID ist.
Warum das so war... kein Plan?
Also lasse ich mir jetzt alle Clients auf dem Server in einer Schleife auflisten und prüfe die dann ob sie gültig sind.
Danach wird geprüft ob die zu prüfende ID zu einer ID in der Liste passt.
Damit gehe ich zu 100% sicher das die ID zu einem Player auf dem Server gehört und gültig ist.
Ich arbeite zwar nicht wirklich mit Extensions, aber wofür genau wird in diesem Script Sdkhooks benötigt?
Um das Event einer detonierenden Rauch-Granate zu ermitteln.
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
#include <sdkhooks>
public OnPluginStart()
{
HookEvent("smokegrenade_detonate", smokegrenade_detonate);
}
public smokegrenade_detonate(Handle:event, const String:name[], bool:dontBroadcast)
{
// Los geht's...
}
|
-