Hallo liebe Community,
ich habe folgendes Problem:
Ich bastle momentan an einem Selfmade und bin an einer Stelle angekommen, bei der ich wirklich Probleme
bekomme...
Dashier ist mein LoadAccount Stock:
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"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Banned",dini_Int(Spielerdatei,"Banned"));
SetPVarInt(playerid,"AdminDuty",dini_Int(Spielerdatei,"AdminDuty"));
SetPVarInt(playerid,"Cop",dini_Int(Spielerdatei,"Cop"));
SetPVarInt(playerid,"Cabdriver",dini_Int(Spielerdatei,"Cabdriver"));
SetPVarInt(playerid,"Adminvilla",dini_Int(Spielerdatei,"Adminvilla"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"loggedin",1);
//SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
//SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
return 1;
}
Und dashier mein SpielerSpeichern Stock:
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
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",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"AdminDuty",GetPVarInt(playerid,"AdminDuty"));
dini_IntSet(Spielerdatei,"Banned",GetPVarInt(playerid,"Banned"));
dini_IntSet(Spielerdatei,"Adminvilla",GetPVarInt(playerid,"Adminvilla"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Cop",GetPVarInt(playerid,"Cop"));
dini_IntSet(Spielerdatei,"Cabdriver",GetPVarInt(playerid,"Cabdriver"));
}
return 1;
}
Wenn ich nun jetzt zum Beispiel einen Admincommand machen möchte,
benutze ich folgendes...
stock isPlayerAnAdmin(playerid,rang)
{
if(GetPVarInt(playerid,"Adminlevel")>=rang) return 1;
return 0;
}
Und das setze ich dann folgendermaßen in einem Command um...
/**/if(strcmp(cmdtext,"/tbtor", true)==0)
/**/{
/**/ if(isPlayerAnAdmin(playerid,2) || isPlayerAnCabdriver(playerid,1))
/**/ {
/**/ MoveObject(taxibasetor,1811.3444824219,-1885.7247314453,7,4.0);
/**/ SetTimer("taxibasetorzu",6000,0);
/**/ //SendClientMessage(playerid,GRÜN,"Zenrale: Die LSPD-Einfahrt wurde geöffnet");
/**/ GameTextForPlayer(playerid,"~y~Taxibase-Einfahrt~n~~g~GEOEFFNET!",1000,3);
/**/ return 1;
/**/ }
/**/ SendClientMessage(playerid,ROT,"Du bist kein Taxifahrer oder Supporter/Admin");
/**/ return 1;
/**/}
Mein jetziges Problem ist, dass ich gerne in meiner Spielerdatei nun den Wert "AdminDuty" benutzen möchte
( 1 = Duty // 0 = UnDuty ).
Ich möchte jetzt einen Befehl machen, der folgendermaßen aufgebaut ist.
Wenn die Variable "AdminDuty" in der Spielerdatei 0 ist, dann soll er sie auf 1 setzen.
Und wenn die Variable "AdminDuty" in der Spielerdatei 1 ist, dann soll er sie auf 0 setzen.
Ich bräuchte nur diese Abfrage. Den Rest bekomme ich dann wahrscheinlich alleine hin.
Ja ich weiß, dass diese Methode nicht gerade modern ist und es mit einem Teamsystem und Rangsystem oder
so ähnliches leichter währe, aber ich möchte es gerne so weiterhin machen.
Ich will was neues versuchen
Würde mich über eine Hilfreiche Antwort sehr freuen.
Vielen Dank!!!!!!
MfG Marc1706