kann mir wer sagen was stock bedeutet ? Also was mir das bringt ?
Das "stock" vor einer Function ist nicht unbedingt notwendig, man kann es auch weglassen, das stock fügt praktisch automatisch ein
#pragma unused <function name>
ein.
D.h. die Funktion die du machst, verursacht keine Warnung wenn du sie nicht benutzt.
Das ist vor allem bei .inc Dateien nützlich, da dort meistens ein Haufen an Funktionen dem Benutzer bereitgestellt werden ohne dass dieser sie meistens alle nutzt, und das gäbe dann einen großen Haufen Warnungen die zwar keine Fehler verursachen aber natürlich die Compiler-Bericht-Box zuspammen würden.
Ontopic:
Hier ist eine kleine aber SEHR nützliche Funktion.
Mir zumindest gibt es ein gewisses Maß an Sicherheit... da ich leider schon sehr viel schlechte Erfahrung mit Skriptklau gemacht habe...
Diese Zeilen sollen verhindern, dass eure .amx Datei auf anderen Servern als eurem ausgeführt wird.
Credits für die Funktion gehen an Y_Less.
Benutzung:
Fügt den ganz unten aufgeführten Code ganz an den Anfang von "OnGameModeInit()" ein.
Ändert die "127.0.0.1" im Code in die IP eures Servers.
Fügt in eurer server.cfg diese Zeile ein:
bind 127.0.0.1
Auch hier natürlich die 127.0.0.1 in eure Server IP umändern.
Funktionsweise:
Dieses Skript macht nun folgendes:
Die SA-MP Entwickler haben die Funktion "bind <IP>" in die server.cfg eingefügt damit IP's auf einen Server festgelegt werden können...
Startet der Server mit "bind 128.0.0.1" hat aber die IP 127.0.0.1 bricht er den Start ab und meldet einen Fehler.
Normal kann dieser Befehl weggelassen werden. Hier aber kommt der Codeschnipsel ins Spiel.
Er überprüft ob die Server IP die in der server.cfg notiert wurde, mit der im Skript übereinstimmt.
Sollte dies nicht der Fall sein bannt er alle IP's vom Server und hängt ihn in einer Endlosschleife auf...
Diese Methode ist ziemlich sicher, die einzige Methode um jetzt noch an eine funktiontüchtige .amx zu kommen ist ein decompiler... welcher aber besonders mit großen Skripts heftige Probleme hat und so wirklich wertvolle große Skripts zu 99.99 % abgesichert sind.
Hier nun der Part der in den Anfang von "OnGameModeInit" kommt:
new
str[16];
GetServerVarAsString("bind", str, sizeof (str));
if (!str[0] || strcmp(str, "127.0.0.1", false))
{
SendRconCommand("banip *.*.*.*");
for( ; ; ) { }
}