Im Gamemode hab ich die Sachen:
#include <a_samp>
#include <dini>
#define DIALOG_REGISTER 4
#define DIALOG_LOGIN 5
#define ADMINLVL Adminlevel
enum SInfo
{
Adminlevel,
Fraktion,
ChangeHC
}
new SpielerInfo[MAX_PLAYERS][SInfo];
public OnPlayerConnect(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Your Account has been found, please Enter your Password:","Login","Cancel");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please enter your Password for the Registration:","Register","Cancel");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
ResetVariablen(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(SpielerInfo[playerid][ADMINLVL] >= 1) //da musste deine definitions von den Adminlvls einfügen
{
SetPlayerColor(playerid,0x00FF00FF);
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,0x00FF00FF,"You have not Logged. Your Data was not loaded!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,0x00FF00FF,"Please write your Password!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Your Account has been found, please Enter your Password:","Login","Cancel");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,0x00FF00FF,"You are not Registered. Your Data will not be saved!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,0x00FF00FF,"Please write a Password!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please enter your Password for the Registration:","Register","Cancel");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Password",key);
SendClientMessage(playerid,0x00FF00FF,"You have successfully Registered!");
SetPlayerScore(playerid,0);
return 1;
}
stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Password"),false))
{
LoadAccount(playerid);
SendClientMessage(playerid,0x00FF00FF,"You have successfully Logged!");
return 1;
}
else
{
SendClientMessage(playerid,0x00FF00FF,"Wrong Password!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Your Account has been found, please Enter your Password:","Login","Cancel");
return 1;
}
}
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
SpielerInfo[playerid][ChangeHC]=dini_Int(Spielerdatei,"ChangeHC");
return 1;
}
stock SpielerSpeichern(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
dini_IntSet(Spielerdatei,"Fraktion",SpielerInfo[playerid][Fraktion]);
dini_IntSet(Spielerdatei,"ChangeHC",SpielerInfo[playerid][ChangeHC]);
return 1;
}
stock ResetVariablen(playerid)
{
SpielerInfo[playerid][Adminlevel]=0;
SpielerInfo[playerid][Fraktion]=0;
SpielerInfo[playerid][ChangeHC]=0;
return 1;
}
Nun, die Klammern stimmen hier nicht, aber in meinem Gamemode funzt es!
Also alle die Adminlvl 1 und höher haben sind grün.
Jetzt wollte ich das in einen Filterscript für Admincommandos einbauen und des funktionert bei mir nicht.
Der FS:
http://pastebin.com/cbN1RqP0
Ohne if(adminlvl....), also mit if(isplayeradmin...) funktioniert es.
Das ist ja nicht der ganze FS ich hab nur des hier gezeigt, was ich mit den adminlvls eingebaut hab.
Es kommen zwar keine errors beim compli, aber wenn ich im spiel die kommandos wähle, kommt nichts.
Ich hoffe jemand kann mir helfen, ich hab schon so viel ausprobiert, aber bekomme es nicht hin.