Guten Tag,
ich habe versucht beim Registrieren einen Skin zu setzen und einen Ingame Befehl zum setzen des Skins (/setskin) aber das Problem ist der Skin bleibt nie..
d.h wenn man reloggt dann ändert er wieder auf den Skin von AddPlayerClass. Aber in AddPlayerClass kann ich ja nur einen Skin einsetzen.
Wir stelle ich das an das man den Skin wenn er gewechselt wurde gespeichert wird und beim einloggen geladen wird?
Alles läuft über das Speichersystem DINI.
Mein Register Stock:
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,"Passwort",key);
SendClientMessage(playerid,COLOR_DUNKELGRÜN,"Erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPlayerSkin(playerid,230);
SetPVarInt(playerid,"loggedin",1);
return 1;
}
Der Load Account 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);
SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,COLOR_KNALLROT,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}
Ist ein Register und Login System von MrMonatTut. Ich finde es einfach und ziemlich gut, aber das mit der Skinsetzung / Speicherung habe ich nicht so kapiert.
Der /setskin Befehl:
ocmd:setskin(playerid,params[])
{
new skinID,pID;
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_KNALLROT,"Du bist kein Administrator / Administratorlevel zu niedrig!");
if(sscanf(params,"ui",pID,skinID))return SendClientMessage(playerid,COLOR_GRAU,"SYNTAX: /setskin [PlayerID] [SkinID]");
if(skinID<0||skinID>299)return SendClientMessage(playerid,COLOR_KNALLROT,"Ungültige SkinID! (SkinID's 0-299)");
SetPlayerSkin(pID,skinID);
SpielerSpeichern(pID);
return 1;
}
Der SaveStock:
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,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
}
return 1;
}
Sorry für die verschobenen Sachen im PWN Quelltext, das klappt nicht immer so mit der PWN Funktion
Ich freue mich über Hilfen.
MfG.
Paradoxis