Hallo,
ich hab folgendes Problem:
Wenn man sich einloggt, kommt man zu der Skinauswahl und spawnt erst, wenn man entweder einen anderen Skin auswählt, oder auf spawn drückt. Eigentlich soll der Spieler direkt nach dem Login spawnen.
Ich habe beim Login, sowie bei der Registrierung 2 mal SpawnPlayer(playerid); eingefügt. Genauso wie bei OnPlayerRequestclass 2 mal. Ich hoffe ihr könnt mir helfen. Hier meine PWN Codes:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 161.2155,-1927.6171,3.7734);
SetPlayerFacingAngle(playerid, 56.5680);
SetPlayerCameraPos(playerid, 157.4641,-1925.4463,3.7734);
SetPlayerCameraLookAt(playerid, 161.2155,-1927.6171,3.7734);
SpawnPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"Accounts3/%s.txt",pname);
if(response)
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
if(response == 0)
{
Kick(playerid);
}
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich mit deinem Passwort ein:","Weiter","Abbrechen");
return SendClientMessage(playerid,COLOR_BRIGHTRED,"* Du hast kein Passwort angegeben.");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
{
OnPlayerLogin(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich mit deinem Passwort ein:","Weiter","Abbrechen");
SendClientMessage(playerid,COLOR_BRIGHTRED,"* Du hast ein falsches Passwort angegeben.");
}
}
case DIALOG_REG:
{
if(response == 0)
{
Kick(playerid);
}
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Du hast noch keinen Account. Bitte registriere dich:","Weiter","Abbrechen");
return SendClientMessage(playerid,COLOR_BRIGHTRED,"* Das angegebene Passwort ist zu kurz.");
}
OnPlayerRegister(playerid,inputtext);
}
}
}
else
{
switch(dialogid)
{
case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich mit deinem Passwort ein:","Weiter","Abbrechen");
case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Du hast noch keinen Account. Bitte registriere dich:","Weiter","Abbrechen");
}
}
return 1;
}
public OnPlayerLogin(playerid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"Accounts3/%s.txt",pname);
PlayerInfo[playerid][pSkin] = dini_Int(accFormat,"pSkin");
PlayerInfo[playerid][pAdmin] = dini_Int(accFormat,"pAdmin");
PlayerInfo[playerid][pTeam] = dini_Int(accFormat,"pTeam");
PlayerInfo[playerid][pLeader] = dini_Int(accFormat,"pLeader");
SetPlayerWantedLevel(playerid,dini_Int(accFormat,"pWanted"));
GivePlayerMoney(playerid,dini_Int(accFormat,"pMoney"));
SetPlayerScore(playerid,dini_Int(accFormat,"pLevel"));
PlayerInfo[playerid][eingeloggt] = 1;
SendClientMessage(playerid,COLOR_GREY,"* Du wurdest erfolgreich eingeloggt.");
SpawnPlayer(playerid);
SpawnPlayer(playerid);
return 1;
}
public OnPlayerRegister(playerid,password[])
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"Accounts3/%s.txt",pname);
dini_Create(accFormat);
dini_Set(accFormat,"Passwort",password);
dini_IntSet(accFormat, "pAdmin" , 0);
dini_IntSet(accFormat, "pMoney" , 1000);
dini_IntSet(accFormat, "pLevel" , 0);
dini_IntSet(accFormat, "pSkin" , 137);
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pTeam] = 0;
PlayerInfo[playerid][pLeader] = 0;
PlayerInfo[playerid][eingeloggt] = 1;
PlayerInfo[playerid][pSkin] = 137;
GivePlayerMoney(playerid, 1000);
SetPlayerScore(playerid, 0);
SetPlayerWantedLevel(playerid,0);
SendClientMessage(playerid,COLOR_GREY,"* Dein Account wurde angelegt und du wurdest eingeloggt.");
SpawnPlayer(playerid);
SpawnPlayer(playerid);
}