Hey,
ich habe ein Problem mit meinem Script.
Und zwar wird bei meinem Spieler zwar das angegebene "Wachemember" gespeichert, allerdings
wird es danach in der Dini trotzdem nur mit z.B Wachenmember = 0 gespeichert (Auch nach dem Invite oder dem Makeleader).
Ich hab selber schon ein paar Sachen probiert, allerdings sind Fraktionen für mich absolutes Neuland.
Hier die Codes:
enum sinfo
{
Adminlevel,
Score,
Banned,
LoggedIn,
Wachenleader,
Wachenmember,
}
new SpielerInfo[MAX_PLAYERS][sinfo];
dcmd_winvite(playerid,params[])
{
new pID, wID, Name[MAX_PLAYER_NAME], Player[MAX_PLAYER_NAME],string[128];
if(sscanf(params,"ud",pID,wID))return SendClientMessage(playerid,COLOR_GREY,"INFO: /winvite [playerid] [WachenID]");
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, COLOR_RED,"Du nix admin sein tuten tun!");//Hier halt deine Abfrage wer das machen darf
GetPlayerName(playerid, Name, sizeof(Name));
GetPlayerName(pID, Player, sizeof(Player));
format(string, sizeof(string),"[Info] %s hat dich zur Wache %d invitet!",Name,wID);
SendClientMessage(pID, COLOR_GREEN,string);
format(string, sizeof(string),"[Info] Du hast %s zur Wache %d invitet!",Player,wID);
SendClientMessage(playerid, COLOR_GREEN,string);
SpielerInfo[pID][Wachenmember] = wID;
return 1;
}
dcmd_wmakeleader(playerid,params[])
{
new pID, wID, Name[MAX_PLAYER_NAME], Player[MAX_PLAYER_NAME],string[128];
if(sscanf(params,"ud",pID,wID))return SendClientMessage(playerid, COLOR_GREY,"INFO: /wmakeleader [playerid] [WachenID]");
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, COLOR_RED,"Bla");
GetPlayerName(playerid, Name, sizeof(Name));
GetPlayerName(pID, Player, sizeof(Player));
format(string, sizeof(string),"[Info] %s hat dich zum Wachenleiter der Wache %d ernannt!",Name,wID);
SendClientMessage(pID, COLOR_GREEN,string);
format(string, sizeof(string),"[Info] Du hast %s zum Wachenleiter der Wache %d ernannt!",Player,wID);
SendClientMessage(playerid, COLOR_GREEN,string);
SpielerInfo[pID][Wachenleader] = wID;
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.ini",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
dini_IntSet(Spielerdatei,"Level",1);
dini_IntSet(Spielerdatei,"Geld",50000);
dini_IntSet(Spielerdatei,"Adminlevel",0);
dini_IntSet(Spielerdatei,"Banned",0);
dini_IntSet(Spielerdatei,"Warns",0);
dini_IntSet(Spielerdatei,"Fraksperre",0);
dini_IntSet(Spielerdatei,"Chef",0);
dini_IntSet(Spielerdatei,"Beruf",0);
dini_IntSet(Spielerdatei,"Firma",0);
dini_IntSet(Spielerdatei,"Skin",0);
dini_IntSet(Spielerdatei,"Spielzeitinsgesamt",0);
dini_IntSet(Spielerdatei,"Paydayzeit",0);
dini_IntSet(Spielerdatei,"WantedLevel",0);
dini_IntSet(Spielerdatei,"Job",0);
dini_IntSet(Spielerdatei,"Ausweis",0);
dini_IntSet(Spielerdatei,"Wachenleader",0);
dini_IntSet(Spielerdatei,"Wachenmember",0);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Erfolgreich Registriert, Viel Spaß!");
SpawnPlayer(playerid);
return 1;
}
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Score"));
SpielerInfo[playerid][Banned]=dini_Int(Spielerdatei,"Banned");
SpielerInfo[playerid][LoggedIn]=dini_Int(Spielerdatei,"LoggedIn");
SpielerInfo[playerid][Wachenleader] = dini_Int(Spielerdatei,"Wachenleader");
SpielerInfo[playerid][Wachenmember] = dini_Int(Spielerdatei,"Wachenmember");
return 1;
}
stock SpielerSpeichern(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Banned",SpielerInfo[playerid][Banned]);
dini_IntSet(Spielerdatei,"LoggedIn",SpielerInfo[playerid][LoggedIn]);
dini_IntSet(Spielerdatei,"Wachenleader",SpielerInfo[playerid][Wachenleader]);
dini_IntSet(Spielerdatei,"Wachenmember",SpielerInfo[playerid][Wachenmember]);
return 1;
}
Ich bekomme keiner Errors, nur wird wie gesagt die richtige Nummer nicht gespeichert.
Ich habe gerade noch etwas gefunden, vielleicht kann euch das weiterhelfen, ich weiß es aber nicht.
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
Das ist unter OnGameModeInit.
Danke für die Hilfe im vorraus
LG Saarland