hier sollte so Funzen, kannste als FS nehmen, oder in deinen GM setzen
Code
#include <a_samp>
#define RED 0xAA3333AA
#define YELLOW 0xFFFF00AA
forward Whitelist(playerid);
new gdebug = 0;
public Whitelist(playerid)
{
if (gdebug >= 1){printf("DEBUG Whitelist Check(%d) (%s)", playerid);}
new playername2[MAX_PLAYER_NAME];
new storedcopname[64];
GetPlayerName(playerid, playername2, sizeof(playername2));
new File: file = fopen("Whitelist.cfg", io_read);
if (file)
{
new valtmp[MAX_PLAYER_NAME];
while (fread(file, valtmp) > 0)
{
strmid(storedcopname, valtmp, 0, strlen(playername2), 255);
if ((strcmp(storedcopname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedcopname)))
{
fclose(file);
return 1;
}
}
}
fclose(file);
return 0;
}
public OnPlayerConnect(playerid)
{
if (Whitelist(playerid)) {
} else {
SendClientMessage(playerid, RED, "Du stehst nicht auf der Whitelist");
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/whitelist", true) == 0)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, YELLOW, "Benutze: /addp [spielername]");
return 1;
}
if ((IsPlayerAdmin(playerid)))
{
new Float:px, Float:py, Float:pz;
GetPlayerPos(playerid, px, py, pz);
new coordsstring[256];
format(coordsstring, 256, "%s\n",result);
new File:hFile;
hFile = fopen("Whitelist.cfg", io_append);
fwrite(hFile, coordsstring);
fclose(hFile);
SendClientMessage(playerid, RED, " Der Spieler wurde zur Whitelist geaddet!");
}
return 1;
}
return 1;
}
//-----------------------strtok-----------------------------
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
//----------------------------------------------------
Alles anzeigen