Hallo Zusammen.
Ich habe, heute mal Den Befehl /Makelader angefangen & ihn eben Beendet. Habe dafür 2-3 Minuten gebraucht.
Jetz ist nur Meine frage, das Wenn ich z.b Ingame /Makeleader [Name] [FraktionId] & danach Disconnecte.
Ob diese Dinge, dann in /Account/%s. = Fraktion 1 = FraktionRang = 1 Gespeichert wird.
Der Befehl:
ocmd:makeleader(playerid, params[])
{
new pID, string[250];
if(pInfo[playerid][Adminlevel] == 1339)return SendClientMessage(playerid, 0xFF0000FF, "Dir fehlen die notwendigen Rechte!");
if(sscanf(params, "ii", pID))return SendClientMessage(playerid, 0xFF0000FF, "Der Befehl lautet: /makeleader [Spielerid] [Fraktionsid]");
format(string, sizeof (string), "Der Admin %s möchte dich in die Fraktion %d einladen.\n Nimmst du die Leaderschaft an?", SpielerName(playerid), pID);
ShowPlayerDialog(pID, DIALOG_MAKELEADER, DIALOG_STYLE_MSGBOX, "Leaderinvite", string, "Ja", "Nein");
if(makeleaderstatus == false)
{
SendClientMessage(playerid, 0xFF0000FF, "Der Spieler hat die Leaderschaft abgelehnt!");
SendClientMessage(pID, 0xFF0000FF, "Du hast die Leaderschaft abgelehnt!");
}
else if(makeleaderstatus == true)
{
SendClientMessage(playerid, 0x99FF00FF, "Der Spieler hat die Leaderschaft angenommen!");
SendClientMessage(pID, 0x99FF00FF, "Du hast die Leaderschaft angenommen!");
SetPVarInt(Fraktinfo[playerid][Fraktion], "Fraktion", pID);
SetPVarInt(Fraktinfo[playerid][FraktionRang], "Fraktionsrang", 6);
}
return 1;
}
Der Enum
enum Frakt
{
Fraktion,
FraktonRang
}
new Fraktinfo[playerid][Frakt];
Und hier werden die Dinge Geladen & Gespeichert:
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
Fraktinfo[playerid][Fraktion] = dini_Int(Spielerdatei,"Adminlevel");
SetPVarInt(playerid,"Wanted",dini_Int(Spielerdatei,"Wanted"));
pInfo[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
SetPVarInt(playerid,"loggedin",1);
SetPVarInt(playerid,"PayDay",dini_Int(Spielerdatei,"PayDay"));//Er soll aus der Spielerdatei den PayDay einstellen bzw. die Zahl vergeben (SetPVarInt). Übrigens bedeutet das Int=Integer. Das heißt Zahl. Also wenn ihr was mit Int macht, dann wird es als Zahl gespeichert. Also: SetPVarInt(playerid,"PayDay" heißt das er die Payday Variable einstellen (Set) soll. Danach steht wo er diese Information hernehmen kann, also aus der Spielerdatei, Zeile PayDay.
SetPVarInt(playerid,"Monate",dini_Int(Spielerdatei,"Monate"));//hier das selbe nur mit den monaten
Fraktinfo[playerid][Fraktion] = dini_Int(Spielerdatei,"Fraktion");
Fraktinfo[playerid][FraktionRang] = dini_Int(Spielerdatei,"FraktionRang");
pInfo[playerid][SpielerPosition] = dini_Int(Spielerdatei,"SpielerPosition");
pInfo[playerid][Bank] = dini_Int(Spielerdatei,"Bank");
return 1;
}
Speichern:
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,"Adminlevel",pInfo[playerid][Adminlevel]);
dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
dini_IntSet(Spielerdatei,"Wanted",GetPlayerWantedLevel(playerid));
dini_IntSet(Spielerdatei,"PayDay",GetPVarInt(playerid,"PayDay")); //dini_IntSet bedeutet das er eine Zahl in die Name.txd datei eintragen soll, in der Zeile PayDay, GetPVar, damit gibt er die Zahl die er dann speichert.
dini_IntSet(Spielerdatei,"Monate",GetPVarInt(playerid,"Monate"));//hier das selbe für monate
dini_IntSet(Spielerdatei,"Fraktion",Fraktinfo[playerid][Fraktion]);
dini_IntSet(Spielerdatei,"FraktionRang",Fraktinfo[playerid][FraktionRang]);
dini_IntSet(Spielerdatei,"SpielerPosition", pInfo[playerid][SpielerPosition]);
dini_IntSet(Spielerdatei, "Bank", pInfo[playerid][Bank]);
}
return 1;
}
Würde das so Überhaupt Ingame Funktionieren?
MFG
Dome331
//e Überarbeitet